{"id":"CVE-2026-118164","kind":"vulnerability","aliases":["CVE-2026-118164"],"related":[],"title":"If-So Dynamic Content WordPress plugin: stored XSS via contributor-level editing","description":"The If-So Dynamic Content – Elementor & All Page Builders Personalization plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'repeater[*][version_uid] (and many sibling fields: freeze-mode, cookie-input, ip-input, compare, utm-value, page-url-compare, group-name, custom, …)' parameter in all versions up to, and including, 1.10.2 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.","summary":"The If-So Dynamic Content plugin for WordPress fails to sanitize and escape several repeater fields, so authenticated contributors can store script that runs in pages. An attacker gets script execution in the browser of any visitor, or an admin, who opens an injected page.","severity":"medium","cvss":6.4,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["elementor","package","wordpress","wordpress-plugin"],"not_affected_if":["no-untrusted-contributors","plugin-not-installed","plugin-updated"],"how_to_check":"- Check the installed version of the If-So Dynamic Content plugin in the WordPress admin plugin list or with `wp plugin get if-so --field=version`\n- Confirm whether the plugin is active on the site","fix":"- Update the If-So Dynamic Content plugin to a version later than `1.10.2`, as the description says all versions up to and including `1.10.2` are affected\n- Review pages edited by contributors for injected script if the plugin was installed on a vulnerable version","status":"open","published_at":"2026-10-28T07:16:48+00:00","first_seen_at":"2026-10-28T07:31:38+00:00","triaged_at":"2026-10-28T07:32:58+00:00","updated_at":"2026-10-28T07:32:58+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-10-28T07:32:58Z","model":"claude-haiku-5-5","output":{"fix":"- Update the If-So Dynamic Content plugin to a version later than `1.10.2`, as the description says all versions up to and including `1.10.2` are affected\n- Review pages edited by contributors for injected script if the plugin was installed on a vulnerable version","reach":"internet","title":"If-So Dynamic Content WordPress plugin: stored XSS via contributor-level editing","impact":"medium","summary":"The If-So Dynamic Content plugin for WordPress fails to sanitize and escape several repeater fields, so authenticated contributors can store script that runs in pages. An attacker gets script execution in the browser of any visitor, or an admin, who opens an injected page.","category":"package","nicknames":[],"who_cares":["wordpress","wordpress-plugin","elementor"],"confidence":0.6,"needs_auth":"yes","worst_case":"script runs in visitor and admin browsers on injected pages","analyst_note":"","how_to_check":"- Check the installed version of the If-So Dynamic Content plugin in the WordPress admin plugin list or with `wp plugin get if-so --field=version`\n- Confirm whether the plugin is active on the site","needs_analyst":false,"not_affected_if":["plugin-not-installed","plugin-updated","no-untrusted-contributors"],"who_is_affected":"Sites running the If-So Dynamic Content plugin at version `1.10.2` or earlier are exposed, because contributor-level accounts can store script in plugin fields that is output to visitors. Sites without the plugin, or where only trusted editors can create content, have less exposure. unknown whether a specific default configuration is required.","user_interaction":"yes","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000642,"input_tokens":3439,"output_tokens":597,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-118164':17A,20A '-2026':16A,19A '1.10.2':133C 'access':153C,169C 'admin':67B 'arbitrari':158C 'attack':55B,148C 'authent':45B,147C 'browser':61B 'builder':82C 'compar':113C,120C 'content':5A,32B,78C 'contributor':12A,46B,151C 'contributor-level':11A,150C 'cooki':108C 'cookie-input':107C 'cross':92C 'cross-sit':91C 'custom':124C 'cve':15A,18A 'due':134C 'dynam':4A,31B,77C 'edit':14A 'elementor':21B,79C 'escap':40B,141C 'execut':58B,165C 'fail':36B 'field':43B,103C 'freez':105C 'freeze-mod':104C 'get':56B 'group':122C 'group-nam':121C 'if-so':1A,28B,74C 'includ':132C 'inject':71B,157C,171C 'input':109C,112C,137C 'insuffici':136C 'ip':111C 'ip-input':110C 'level':13A,152C 'make':143C 'mani':101C 'mode':106C 'name':123C 'open':69B 'output':140C 'packag':22B 'page':53B,72B,81C,118C,162C,172C 'page-url-compar':117C 'paramet':125C 'person':83C 'plugin':7A,26B,33B,84C 'possibl':145C 'repeat':42B,97C 'run':51B 'sanit':38B,138C 'script':49B,57B,94C,160C 'sever':41B 'sibl':102C 'site':93C 'store':8A,48B,90C 'uid':99C 'url':119C 'user':168C 'utm':115C 'utm-valu':114C 'valu':116C 'version':98C,128C 'via':10A,95C 'visitor':64B 'vulner':88C 'web':159C 'whenev':166C 'wordpress':6A,23B,25B,35B,86C 'wordpress-plugin':24B 'xss':9A","nicknames":[],"mitigations":[],"who_affected":"Sites running the If-So Dynamic Content plugin at version `1.10.2` or earlier are exposed, because contributor-level accounts can store script in plugin fields that is output to visitors. Sites without the plugin, or where only trusted editors can create content, have less exposure. unknown whether a specific default configuration is required.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-28T07:16:48+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N","cvss_by":"security@wordfence.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-118164","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-118164","severity":null,"published_at":"2026-10-28T07:16:48+00:00","modified_at":"2026-10-28T07:16:48+00:00","first_seen_at":"2026-10-28T07:31:38+00:00","fetched_at":"2026-10-28T07:31:38+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}