{"id":"CVE-2026-96666","kind":"vulnerability","aliases":["CVE-2026-96666"],"related":[],"title":"Schema App Structured Data plugin for WordPress: stored script injection via comments","description":"The Schema App Structured Data plugin for WordPress is vulnerable to Stored Cross-Site Scripting via Comment Content via 'Remove Microdata' Output Filter in all versions up to, and including, 2.3.2 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. Exploitation requires that an administrator has enabled the plugin's 'Remove Microdata' option and approves the malicious comment.","summary":"The Schema App Structured Data WordPress plugin, up to and including 2.3.2, fails to sanitize comment content when the 'Remove Microdata' filter is on. An unauthenticated attacker can plant a script in a comment that runs in the browser of anyone who opens the affected page, once an administrator approves the comment.","severity":"high","cvss":7.2,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","schema-app-structured-data","wordpress"],"not_affected_if":["comments-disabled","option-disabled","plugin-not-installed"],"how_to_check":"- Check whether the plugin folder is present and its version is `2.3.2` or lower in the WordPress plugins list.\n- Check whether the plugin's 'Remove Microdata' option is enabled in its settings.\n- Check approved comments for script content.","fix":"- Move the Schema App Structured Data plugin to a version later than `2.3.2`; the sources do not name the fixed version.","status":"open","published_at":"2026-10-29T04:18:45+00:00","first_seen_at":"2026-10-29T04:41:58+00:00","triaged_at":"2026-10-29T04:43:07+00:00","updated_at":"2026-10-29T04:43:07+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-29T04:43:07Z","model":"claude-haiku-5-5","output":{"fix":"- Move the Schema App Structured Data plugin to a version later than `2.3.2`; the sources do not name the fixed version.","reach":"internet","title":"Schema App Structured Data plugin for WordPress: stored script injection via comments","impact":"medium","summary":"The Schema App Structured Data WordPress plugin, up to and including 2.3.2, fails to sanitize comment content when the 'Remove Microdata' filter is on. An unauthenticated attacker can plant a script in a comment that runs in the browser of anyone who opens the affected page, once an administrator approves the comment.","audience":"businesses","category":"package","nicknames":[],"who_cares":["wordpress","schema-app-structured-data"],"confidence":0.8,"fix_status":"unknown","needs_auth":"no","worst_case":"Scripts run in visitors' browsers on the affected site","analyst_note":"","how_to_check":"- Check whether the plugin folder is present and its version is `2.3.2` or lower in the WordPress plugins list.\n- Check whether the plugin's 'Remove Microdata' option is enabled in its settings.\n- Check approved comments for script content.","plain_action":"","needs_analyst":false,"not_affected_if":["option-disabled","plugin-not-installed","comments-disabled"],"who_is_affected":"Sites running the Schema App Structured Data plugin version 2.3.2 or earlier with the 'Remove Microdata' option enabled. The attack also needs an administrator to approve the malicious comment, so sites with the option off or with no comment approval flow are less exposed. Sites not running this plugin are not affected.","user_interaction":"yes","needs_special_setup":"yes","severity_if_unknown":"unknown"},"cost_usd":0.00072,"input_tokens":4216,"output_tokens":596,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-2026':14A,17A '-96666':15A,18A '2.3.2':37B,109C 'access':138C 'administr':74B,146C 'affect':70B 'anyon':66B 'app':2A,22B,28B,80C 'approv':75B,156C 'arbitrari':127C 'attack':52B,124C 'browser':64B 'comment':12A,41B,59B,77B,95C,159C 'content':42B,96C 'cross':91C 'cross-sit':90C 'cve':13A,16A 'data':4A,24B,30B,82C 'due':110C 'enabl':148C 'escap':117C 'execut':134C 'exploit':142C 'fail':38B 'filter':47B,101C 'includ':36B,108C 'inject':10A,126C,140C 'input':113C 'insuffici':112C 'make':119C 'malici':158C 'microdata':46B,99C,153C 'open':68B 'option':154C 'output':100C,116C 'packag':19B 'page':71B,131C,141C 'plant':54B 'plugin':5A,32B,83C,150C 'possibl':121C 'remov':45B,98C,152C 'requir':143C 'run':61B 'sanit':40B,114C 'schema':1A,21B,27B,79C 'schema-app-structured-data':20B 'script':9A,56B,93C,129C 'site':92C 'store':8A,89C 'structur':3A,23B,29B,81C 'unauthent':51B,123C 'user':137C 'version':104C 'via':11A,94C,97C 'vulner':87C 'web':128C 'whenev':135C 'wordpress':7A,25B,31B,85C","nicknames":[],"mitigations":[],"who_affected":"Sites running the Schema App Structured Data plugin version 2.3.2 or earlier with the 'Remove Microdata' option enabled. The attack also needs an administrator to approve the malicious comment, so sites with the option off or with no comment approval flow are less exposed. Sites not running this plugin are not affected.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"unknown","audience":"businesses","plain_action":null,"first_public_at":"2026-10-29T04:18:45+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/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-96666","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-96666","severity":null,"published_at":"2026-10-29T04:18:45+00:00","modified_at":"2026-10-29T04:18:45+00:00","first_seen_at":"2026-10-29T04:41:58+00:00","fetched_at":"2026-10-29T04:41:58+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"}