{"id":"CVE-2026-109990","kind":"vulnerability","aliases":["CVE-2026-109990"],"related":[],"title":"WordPress Flying Scripts plugin: unauthenticated stored XSS via comment parameter","description":"The Flying Scripts: Delay JavaScript to Improve Site Speed & Performance plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'comment' parameter in all versions up to, and including, 1.2.4 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. The exploit bypasses WordPress core's save-time kses sanitization entirely because the payload uses only kses-allowed elements — an &lt;abbr title&gt; attribute and &lt;code&gt; text content — and the XSS is introduced post-save when the plugin's output-buffer rewriter substitutes a double-quote-bearing &lt;code&gt; body into the &lt;abbr title&gt; attribute via predictable, unsalted ___noise___ placeholder keys.","summary":"The Flying Scripts WordPress plugin up to and including 1.2.4 fails to sanitize the 'comment' parameter, letting unauthenticated attackers store script in pages. The script runs in the browser of anyone who opens an injected page, which can include administrators.","severity":"high","cvss":7.2,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","self-hosted","wordpress","wordpress-plugin"],"not_affected_if":["plugin-not-installed","plugin-version-above-1.2.4"],"how_to_check":"- Check the installed Flying Scripts plugin version in the WordPress admin plugins list or with `wp plugin get flying-scripts --field=version`\n- Treat any installed version up to and including `1.2.4` as affected","fix":"- Update the Flying Scripts plugin to a version later than `1.2.4`; the exact fixed version is unknown from the sources\n- If no fixed release exists, deactivate and remove the plugin","status":"open","published_at":"2026-10-16T04:18:26+00:00","first_seen_at":"2026-10-23T21:57:12+00:00","triaged_at":"2026-10-25T03:29:57+00:00","updated_at":"2026-10-25T03:29:57+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-25T03:29:57Z","model":"claude-haiku-5-5","output":{"fix":"- Update the Flying Scripts plugin to a version later than `1.2.4`; the exact fixed version is unknown from the sources\n- If no fixed release exists, deactivate and remove the plugin","reach":"internet","title":"WordPress Flying Scripts plugin: unauthenticated stored XSS via comment parameter","impact":"medium","summary":"The Flying Scripts WordPress plugin up to and including 1.2.4 fails to sanitize the 'comment' parameter, letting unauthenticated attackers store script in pages. The script runs in the browser of anyone who opens an injected page, which can include administrators.","category":"package","nicknames":[],"who_cares":["wordpress","self-hosted","wordpress-plugin"],"confidence":0.7,"needs_auth":"no","worst_case":"Attacker script runs in visitors' browsers, possibly admin sessions","analyst_note":"Confirm the fixed plugin version and whether a patch exists at the NVD entry or the plugin's changelog.","how_to_check":"- Check the installed Flying Scripts plugin version in the WordPress admin plugins list or with `wp plugin get flying-scripts --field=version`\n- Treat any installed version up to and including `1.2.4` as affected","needs_analyst":true,"not_affected_if":["plugin-not-installed","plugin-version-above-1.2.4"],"who_is_affected":"Sites running the Flying Scripts plugin at version 1.2.4 or earlier, where the plugin's output rewriting is active on public pages. Sites that do not have the plugin installed are not affected. Whether comment submission is open to anonymous visitors on a given site is unknown from the sources.","user_interaction":"yes","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000661,"input_tokens":3535,"output_tokens":614,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-109990':13A,16A '-2026':12A,15A '1.2.4':34B,97C 'abbr':152C,185C 'access':126C 'administr':64B 'allow':149C 'anyon':55B 'arbitrari':115C 'attack':43B,112C 'attribut':154C,187C 'bear':180C 'bodi':182C 'browser':53B 'buffer':173C 'bypass':132C 'code':156C,181C 'comment':9A,39B,88C 'content':158C 'core':134C 'cross':83C 'cross-sit':82C 'cve':11A,14A 'delay':68C 'doubl':178C 'double-quote-bear':177C 'due':98C 'element':150C 'entir':141C 'escap':105C 'execut':122C 'exploit':131C 'fail':35B 'fli':2A,26B,66C 'host':20B 'improv':71C 'includ':33B,63B,96C 'inject':59B,114C,128C 'input':101C 'insuffici':100C 'introduc':163C 'javascript':69C 'key':193C 'kses':139C,148C 'kses-allow':147C 'let':41B 'make':107C 'nois':191C 'open':57B 'output':104C,172C 'output-buff':171C 'packag':17B 'page':47B,60B,119C,129C 'paramet':10A,40B,89C 'payload':144C 'perform':74C 'placehold':192C 'plugin':4A,24B,29B,75C,169C 'possibl':109C 'post':165C 'post-sav':164C 'predict':189C 'quot':179C 'rewrit':174C 'run':50B 'sanit':37B,102C,140C 'save':137C,166C 'save-tim':136C 'script':3A,27B,45B,49B,67C,85C,117C 'self':19B 'self-host':18B 'site':72C,84C 'speed':73C 'store':6A,44B,81C 'substitut':175C 'text':157C 'time':138C 'titl':153C,186C 'unauthent':5A,42B,111C 'unsalt':190C 'use':145C 'user':125C 'version':92C 'via':8A,86C,188C 'vulner':79C 'web':116C 'whenev':123C 'wordpress':1A,21B,23B,28B,77C,133C 'wordpress-plugin':22B 'xss':7A,161C","nicknames":[],"mitigations":[],"who_affected":"Sites running the Flying Scripts plugin at version 1.2.4 or earlier, where the plugin's output rewriting is active on public pages. Sites that do not have the plugin installed are not affected. Whether comment submission is open to anonymous visitors on a given site is unknown from the sources.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-16T04:18:26+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-109990","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-109990","severity":null,"published_at":"2026-10-16T04:18:26+00:00","modified_at":"2026-10-16T15:17:08+00:00","first_seen_at":"2026-10-23T21:57:12+00:00","fetched_at":"2026-10-23T22:28:54+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"}