Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach public comment form unauthenticated
-
DeliverySubmit crafted comment payload with '?' delimiter
-
ExploitRegex rewrite strips '?' and closing quote
-
ExecutionPayload escapes HTML attribute boundary
-
PersistStored script served in page
-
ImpactScript executes in visitor/admin browser
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the 'Remove query strings from static resources' option to be ENABLED in W3 Total Cache - this is the specific, named precondition, because mutate_url() must strip the '?' delimiter and everything after it (including the closing quote of the outer HTML attribute) to break the attribute boundary and inject script. The attack vector is the public comment submission feature, so no authentication is needed (PR:N). Limiting factors: the required option is not the default configuration, affected versions are 2.10.6 and earlier (patched in 2.10.7), and successful script execution depends on a user/administrator subsequently viewing a page that renders the malicious comment. On sites without that caching option enabled, the vector is not exploitable. |
| Impact | This is a genuine but conditional priority rather than a drop-everything emergency. The provided CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N, 7.2 High) describes a network-reachable, unauthenticated stored XSS with a changed scope (payload executes in the browser context of any visitor), which is consistent with a comment-based stored XSS. The decisive limiting signal, however, is that exploitation is gated on a specific non-default setting - the 'Remove query strings from static resources' option in W3 Total Cache - which must be enabled for mutate_url() to strip the '?' and break the attribute boundary. No EPSS score, CISA KEV entry, or public POC was supplied in the input, so there is no evidence of active exploitation or weaponization; exploitation status is 'no public exploit identified at time of analysis.' Signals are broadly consistent (CVSS low-privilege/network vector matches an unauthenticated comment vector), but the real-world risk is lower than the raw 7.2 suggests because the required configuration is not the default, impact is limited to Low confidentiality/integrity (reflected/stored script, no direct server compromise or availability loss), and no exploitation telemetry exists. Prioritize patching on sites known to run the affected plugin with the query-string-removal option enabled; treat it as routine for other deployments. |
| Exploit ScenarioDerived | An unauthenticated attacker submits a blog comment containing a crafted string designed so that, after W3 Total Cache's output-buffer regex rewrite strips the '?' delimiter (and the trailing closing quote of the surrounding HTML attribute), the comment content breaks out of its attribute and injects an executable script. When any subsequent visitor or administrator loads the page that renders that comment, the injected JavaScript runs in their browser session. No public exploit code was identified in the provided data, and the attack only works when the 'Remove query strings from static resources' option is enabled. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 02, 2026
Stored cross-site scripting in the W3 Total Cache plugin for WordPress (all versions up to and including 2.10.6) lets unauthenticated attackers submit a comment containing crafted script payload that is later rendered unsanitized in a page, executing in the browser of any user or administrator who views it - but only on sites where the 'Remove query strings from static resources' option is enabled, since the plugin's output-buffer URL rewrite must strip the '?' delimiter and the closing quote of the enclosing HTML attribute to break out of the attribute context. The issue is fixed in 2.10.7, and no public exploit code or confirmed active exploitation was identified at time of analysis. Because the required caching option is not the default configuration and execution depends on a victim subsequently viewing the injected page, the assessed vector rates this as attack complexity High (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N) even though the vendor-published score is 7.2 with AC:L.
RemediationAI
Vendor-released patch: upgrade W3 Total Cache to 2.10.7 (WordPress.org changeset 3723494, which supersedes the vulnerable 2.10.6 tag), then purge all caches so previously buffered/rewritten pages are regenerated; if the plugin cannot be updated immediately, the highest-fidelity compensating control is to disable the 'Remove query strings from static resources' setting under Performance > Browser Cache, since that option is the explicit precondition for the regex to break the attribute boundary - the trade-off is loss of the query-string-stripping caching optimization (slightly lower cache hit rates on some CDNs) and cached pages must be flushed for the change to take effect. Additional short-term mitigations with trade-offs: enforce full comment moderation or temporarily disable comments on affected sites (removes the unauthenticated injection vector but suppresses legitimate user engagement), and deploy a WAF rule that blocks comment payloads containing HTML attribute-breaking sequences such as quote characters following query-string patterns (detection is heuristic and may produce false positives on legitimate comment text). Because injected script persists in stored comment content, remediation should also include reviewing and removing any existing comments or cached pages containing suspicious attributes. Advisory references: https://www.wordfence.com/threat-intel/vulnerabilities/id/34bd7c32-f4c5-4015-909a-e4730f35494b?source=cve and the fix diff at https://plugins.trac.wordpress.org/changeset/3723494/w3-total-cache/trunk/BrowserCache_Plugin.php .
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
W3 Total Cache is a WordPress performance plugin maintained by BoldGrid (CPE cpe:2.3:a:boldgrid:w3_total_cache:*:*:*:*:*:*:*:*) that caches pages and rewrites front-end output through PHP output buffering. In BrowserCache_Plugin.php, the mutate_url() logic performs a regular-expression rewrite of static-resource URLs so that query strings can be removed when the 'Remove query strings from static resources' option is enabled; the regex in versions through 2.10.6 strips the '?' character and everything that follows it on the matched line. When attacker-controlled comment content is placed inside an HTML attribute (for example a src or href value on a page rendering that comment), the greedy rewrite can consume the closing double quote of the attribute together with the trailing text, breaking the attribute boundary and letting attacker-supplied markup be parsed as real HTML/JavaScript. The root cause class is CWE-79 (Improper Neutralization of Input During Web Page Generation / Cross-Site Scripting), combining insufficient input sanitization of comment content with unsafe output escaping during the buffered rewrite stage. The scope-change component (S:C) reflects that the injected script runs in the security context of the affected page rather than the plugin itself. Relevant code paths are the 2.10.6 tag of BrowserCache_Plugin.php (lines ~208, ~259, ~336) and the fixing changeset 3723494 that produced the 2.10.7 tag.
Know when W3 Total Cache gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
Unauthenticated network comment vector (PR:N, AV:N) with scope change for XSS (S:C); AC:H because exploitation depends on the non-default 'Remove query strings' option being enabled, which the attacker does not control.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The W3 Total Cache plugin for WordPress is vulnerable to Stored Cross-Site Scripting via Comment Content via Output-Buffer Regex Rewrite in all versions up to, and including, 2.10.6 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. This vulnerability is only exploitable when the 'Remove query strings from static resources' option is enabled in W3 Total Cache, as mutate_url() must strip the '?' delimiter and everything following it - including the closing quote of the outer attribute - to break the attribute boundary.
Executive ViewAI
A stored cross-site scripting flaw in the W3 Total Cache plugin (all versions through 2.10.6) allows an unauthenticated visitor to plant malicious script in a comment that later executes in the browser of anyone viewing that page, including logged-in site administrators. Organizations running this plugin on public WordPress sites face potential administrator session hijacking, site defacement, or full site takeover, though the risk is materially reduced because exploitation only works on sites that have enabled the non-default 'Remove query strings from static resources' option and requires a victim to subsequently view the poisoned page. No public exploit code or confirmed active exploitation was identified at time of analysis, so this is a configuration-dependent exposure rather than an imminent, broadly exploited threat.
Apply vendor patch (2.10.7) where validated; if immediate upgrade is not possible, disable the 'Remove query strings from static resources' option, require moderation/approval for all comments, and enforce WAF or CDN virtual patching against stored XSS.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
More in W3 Total Cache
View allThe W3 Total Cache plugin for WordPress is vulnerable to Information Exposure in all versions up to, and including, 2.8.
W3 Total Cache plugin for WordPress exposes security tokens to unauthenticated remote attackers through User-Agent heade
pub/sns.php in the W3 Total Cache plugin before 0.9.4 for WordPress allows remote attackers to read arbitrary files via
The W3 Total Cache plugin before 0.9.4.1 for WordPress does not properly handle empty nonces, which allows remote attack
The W3 Total Cache WordPress plugin before 2.1.5 was affected by a reflected Cross-Site Scripting (XSS) issue within the
The W3 Total Cache WordPress plugin before 2.1.4 was vulnerable to a reflected Cross-Site Scripting (XSS) security vulne
Unauthenticated arbitrary code execution affects the W3 Total Cache WordPress caching plugin in all versions up to and i
The W3 Total Cache WordPress plugin before 2.1.3 did not sanitise or escape some of its CDN settings, allowing high priv
Cross-site scripting (XSS) vulnerability in the W3 Total Cache plugin before 0.9.4.1 for WordPress, when debug mode is e
Stored Cross-Site Scripting in W3 Total Cache (WordPress plugin) versions up to and including 2.10.5 allows unauthentica
Stored cross-site scripting in W3 Total Cache WordPress plugin (all versions through 2.10.3) allows unauthenticated atta
Path traversal in W3 Total Cache WordPress plugin (versions ≤ 2.10.2) enables remote unauthenticated attackers to manipu
EUVD-2026-91335
GHSA-pv8h-wp6c-44p7
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB