{"id":"CVE-2026-104740","kind":"vulnerability","aliases":["CVE-2026-104740"],"related":[],"title":"If-So Dynamic Content WordPress plugin: stored script injection via shortcode","description":"The If-So Dynamic Content – Elementor & All Page Builders Personalization plugin for WordPress is vulnerable to Stored Cross-Site Scripting via 'conversion' Shortcode Attribute 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 WordPress plugin, through version 1.10.2, fails to sanitize the 'conversion' shortcode attribute. An attacker with contributor access can store a script in a page that runs in the browser of anyone who views it.","severity":"medium","cvss":6.4,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["elementor","package","wordpress","wordpress-plugins"],"not_affected_if":["plugin-not-installed","plugin-updated-past-1.10.2"],"how_to_check":"- Check the installed version of the If-So Dynamic Content plugin in the WordPress admin under Plugins, or with `wp plugin get if-so --field=version` if WP-CLI is available\n- Search post content for the `conversion` shortcode attribute, for example `grep -r \"conversion=\" wp-content/` is not sufficient; use the database search unknown","fix":"- Update the If-So Dynamic Content plugin to a version newer than `1.10.2`, the first fixed release is unknown from the sources\n- Until patched, restrict contributor-level accounts and review pages that use the `conversion` shortcode attribute","status":"open","published_at":"2026-10-28T07:16:43+00:00","first_seen_at":"2026-10-28T07:31:37+00:00","triaged_at":"2026-10-28T07:33:11+00:00","updated_at":"2026-10-28T07:33:11+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-10-28T07:33:11Z","model":"claude-haiku-5-5","output":{"fix":"- Update the If-So Dynamic Content plugin to a version newer than `1.10.2`, the first fixed release is unknown from the sources\n- Until patched, restrict contributor-level accounts and review pages that use the `conversion` shortcode attribute","reach":"internet","title":"If-So Dynamic Content WordPress plugin: stored script injection via shortcode","impact":"medium","summary":"The If-So Dynamic Content WordPress plugin, through version 1.10.2, fails to sanitize the 'conversion' shortcode attribute. An attacker with contributor access can store a script in a page that runs in the browser of anyone who views it.","category":"package","nicknames":[],"who_cares":["wordpress","wordpress-plugins","elementor"],"confidence":0.6,"needs_auth":"yes","worst_case":"Attacker script runs in visitors' browsers, stealing sessions or actions","analyst_note":"Confirm the fixed plugin version and whether the shortcode attribute is exploitable by default; the NVD entry at https://nvd.nist.gov/vuln/detail/CVE-2026-104740 gave no fix version.","how_to_check":"- Check the installed version of the If-So Dynamic Content plugin in the WordPress admin under Plugins, or with `wp plugin get if-so --field=version` if WP-CLI is available\n- Search post content for the `conversion` shortcode attribute, for example `grep -r \"conversion=\" wp-content/` is not sufficient; use the database search unknown","needs_analyst":true,"not_affected_if":["plugin-not-installed","plugin-updated-past-1.10.2"],"who_is_affected":"Sites running the If-So Dynamic Content plugin at version 1.10.2 or earlier. The attacker needs a contributor-level WordPress account, and the script runs for visitors who open the injected page. Sites without this plugin are not affected.","user_interaction":"yes","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.000684,"input_tokens":3385,"output_tokens":692,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-104740':15A,18A '-2026':14A,17A '1.10.2':35B,97C 'access':47B,117C,133C 'anyon':61B 'arbitrari':122C 'attack':44B,112C 'attribut':42B,89C 'authent':111C 'browser':59B 'builder':73C 'content':5A,30B,69C 'contributor':46B,115C 'contributor-level':114C 'convers':40B,87C 'cross':83C 'cross-sit':82C 'cve':13A,16A 'due':98C 'dynam':4A,29B,68C 'elementor':19B,70C 'escap':105C 'execut':129C 'fail':36B 'if-so':1A,26B,65C 'includ':96C 'inject':10A,121C,135C 'input':101C 'insuffici':100C 'level':116C 'make':107C 'output':104C 'packag':20B 'page':54B,72C,126C,136C 'person':74C 'plugin':7A,24B,32B,75C 'possibl':109C 'run':56B 'sanit':38B,102C 'script':9A,51B,85C,124C 'shortcod':12A,41B,88C 'site':84C 'store':8A,49B,81C 'user':132C 'version':34B,92C 'via':11A,86C 'view':63B 'vulner':79C 'web':123C 'whenev':130C 'wordpress':6A,21B,23B,31B,77C 'wordpress-plugin':22B","nicknames":[],"mitigations":[],"who_affected":"Sites running the If-So Dynamic Content plugin at version 1.10.2 or earlier. The attacker needs a contributor-level WordPress account, and the script runs for visitors who open the injected page. Sites without this plugin are not affected.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-28T07:16:43+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-104740","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-104740","severity":null,"published_at":"2026-10-28T07:16:43+00:00","modified_at":"2026-10-28T07:16:43+00:00","first_seen_at":"2026-10-28T07:31:37+00:00","fetched_at":"2026-10-28T07:31:37+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"}