Severity by source
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Unauthenticated network injection via a predictable hash (PR:N, AC:L) that only fires when a victim views the page (UI:R); XSS crosses into the browser authority (S:C) with typical low confidentiality/integrity impact and no availability effect.
Primary rating from NVD.
CVSS VectorNVD
Lifecycle Timeline
4DescriptionCVE.org
The Autoptimize WordPress plugin before 3.1.15, Clearfy Cache WordPress plugin before 2.4.2, Speed Optimizer WordPress plugin before 7.7.9 are vulnerable to unauthenticated Stored Cross-Site Scripting (XSS) due to a predictable replacement hash used during the HTML minification process and abusing a regular expression. This allows an attacker to inject arbitrary HTML attributes in the final HTML output by anticipating the placeholder format.
AnalysisAI
Unauthenticated stored cross-site scripting affects the Autoptimize (before 3.1.15), Clearfy Cache (before 2.4.2), and Speed Optimizer (before 7.7.9) WordPress plugins, which share a common HTML-minification routine. Because the placeholder hash used to protect content during minification is predictable, an unauthenticated attacker who can get their input processed by the minifier can anticipate the placeholder format and inject arbitrary HTML attributes into the final rendered output. Publicly available exploit code exists (WPScan), a vendor patch is available, and EPSS is low (0.03%), but the impact is total per CISA SSVC; there is no public exploit identified as being used in active attacks.
Technical ContextAI
The vulnerability lives in the shared HTML minification engine used by these three WordPress optimization plugins. During minification, certain content is temporarily swapped out for placeholder tokens and restored afterward; here those tokens are derived from a predictable replacement hash rather than an unguessable secret. Combined with a permissive/abusable regular expression used to match and restore placeholders, an attacker who understands the deterministic placeholder format can craft input that, once reassembled into the minified page, escapes into live HTML attribute context. This is a classic CWE-79 (Improper Neutralization of Input During Web Page Generation) failure, but the root cause is specifically the predictability of the tokenization scheme rather than a missing output-encoding call. The CPE data (cpe:2.3:a:unknown:autoptimize, :clearfy_cache, :speed_optimizer) confirms the three affected code bases, and the shared behavior strongly implies common upstream minification logic.
RemediationAI
Apply the vendor patches by upgrading each plugin to its fixed release: Autoptimize to 3.1.15 or later, Clearfy Cache to 2.4.2 or later, and Speed Optimizer to 7.7.9 or later (Patch available per vendor advisory; consult the WPScan advisory at https://wpscan.com/vulnerability/3ceabf11-23cd-4c38-ba14-014348b0ff2d/ and NVD at https://nvd.nist.gov/vuln/detail/CVE-2026-3220). If you cannot patch immediately, the most direct compensating control is to disable the HTML minification feature within the affected plugin's settings, which removes the vulnerable placeholder-substitution path at the cost of losing HTML minification performance benefits (CSS/JS optimization can remain enabled). As additional hardening, place the site behind a WAF with XSS/HTML-injection rules and enable a restrictive Content-Security-Policy to limit script execution from injected markup - noting that a strict CSP may break inline scripts and require tuning, and that WAF rules can be bypassed and should not be treated as a substitute for the patch.
More in Autoptimize
View allThe Autoptimize WordPress plugin before 2.7.8 attempts to delete malicious files (such as .php) form the uploaded archiv
The Autoptimize WordPress plugin before 2.7.8 attempts to remove potential malicious files from the extracted archive up
The ao_ccss_import AJAX call in Autoptimize Wordpress Plugin 2.7.6 does not ensure that the file provided is a legitimat
The Autoptimize WordPress plugin before 3.1.7 does not sanitise and escape the settings imported from a previous export,
The Autoptimize WordPress plugin before 3.1.1 does not sanitise and escape some of its settings, which could allow high
The Autoptimize WordPress plugin before 2.7.8 does not check for malicious files such as .html in the archive uploaded v
The Autoptimize WordPress plugin before 2.8.4 was missing proper escaping and sanitisation in some of its settings, allo
A Stored Cross-Site Scripting (XSS) vulnerability exists in the Autoptimize WordPress plugin through version 3.1.14, cau
The Autoptimize WordPress plugin contains a Stored Cross-Site Scripting (XSS) vulnerability in the lazy-loading image pr
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-30736
GHSA-3jpv-pgxw-p274