---
id: "CVE-2026-109990"
kind: "vulnerability"
aliases: ["CVE-2026-109990"]
title: "WordPress Flying Scripts plugin: unauthenticated stored XSS via comment parameter"
severity: "high"
cvss: 7.2
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["package", "self-hosted", "wordpress", "wordpress-plugin"]
not_affected_if: ["plugin-not-installed", "plugin-version-above-1.2.4"]
published_at: "2026-10-16T04:18:26+00:00"
first_seen_at: "2026-10-23T21:57:12+00:00"
updated_at: "2026-10-25T03:29:57+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-109990", "first_seen_at": "2026-10-23T21:57:12+00:00"}]
---

# WordPress Flying Scripts plugin: unauthenticated stored XSS via comment parameter

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.

_Summary, check and fix written by a model from the sources; labelled as such._

## 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`
- 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
- If no fixed release exists, deactivate and remove the plugin

## Timeline

- 2026-10-23T21:57:12+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-109990

## From the sources

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.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
