Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain previously approved commenter identity
-
DeliverySubmit comment with script payload via 'comment' parameter
-
ExploitPayload stored in Disk Enhanced cached page due to stale REST cache state
-
ExecutionVictim visits injected page
-
ImpactArbitrary script executes in victim 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 is tightly gated and NOT a default-configuration scenario despite PR:N in the input vector. All of the following must hold simultaneously: (1) a W3TC Pro license was previously active with REST caching enabled; (2) that Pro license has since become inactive; (3) Disk Enhanced page caching remains configured after the license lapse, so a retained REST cache mode persists in an unlicensed state; and (4) the attacker already holds a previously approved commenter identity on the target site. The limiting factors are therefore substantial: the site must have transitioned from Pro to non-Pro with REST caching left retained, Disk Enhanced caching must be in use, and the attacker needs an existing approved-commenter foothold - a victim must also later load the cached injected page for the stored script to fire. Sites that never ran Pro REST caching, or that are still licensed, are not affected. |
| Impact | The input signals point in conflicting directions and, on balance, this is a high-CVSS-but-low-real-risk issue for most deployments. The supplied CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N = 7.2) reads as a trivially reachable, unauthenticated, network stored XSS with scope change, which would normally be a priority. However, the description imposes an unusually narrow chain of prerequisites that the AC:L rating does not reflect: a W3TC Pro license must have previously been active with REST caching enabled, that license must since have become inactive, Disk Enhanced page caching must remain configured, and the attacker must already hold a previously approved commenter identity. That compound, non-default, state-dependent precondition is the opposite of AC:L, so the input CVSS almost certainly overstates ease of exploitation - verify against the Wordfence advisory. No CISA KEV listing is present, no EPSS probability was supplied, and no proof-of-concept or exploit reference was provided (the references are the Wordfence advisory, WordPress trac source lines, and the fix commit, not working exploit code). The vuln.today decision label is this_week rather than act_now or emergency, consistent with a real but non-urgent, condition-gated flaw. Net: patch on a normal this-week cadence; the raw 7.2 overstates practical exposure because the required configuration/identity preconditions sharply limit who can actually trigger it. |
| Exploit ScenarioDerived | On a site that formerly ran W3TC Pro with REST caching but has lapsed to the free tier while Disk Enhanced page caching stays enabled, an attacker who already owns a previously approved commenter account submits a comment whose 'comment' value carries a script payload. Because the stale REST/Disk Enhanced caching path stores the response without sufficient sanitization or output escaping, the payload is written into a cached page and later executes in the browser of any user who visits that page. No public exploit code was identified in the provided data; the trigger mechanics are described only at the level of the affected caching configuration. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 31, 2026
Stored cross-site scripting in the W3 Total Cache WordPress plugin, affecting all versions up to and including 2.10.7, allows an attacker who already holds a previously approved commenter identity to plant script that is later served from cache to other visitors. Exploitation is tightly gated rather than a default-configuration scenario: the site must have had a W3 Total Cache Pro license with REST caching enabled, that license must have since lapsed, and Disk Enhanced page caching must still be configured so an unlicensed REST cache mode persists and responses get stored and served as static HTML. There is no CISA KEV entry and no public exploit identified at time of analysis; the assessed vector (AC:H/PR:L) is materially narrower than the published 7.2 CVSS score, which places this in the this-week queue rather than an emergency for most deployments.
RemediationAI
An upstream fix is available as commit 7168b0d7cc80e827ad234a0428ab3ecdbef3c107 in the BoldGrid/w3-total-cache repository and as trunk changeset 3757452 (https://plugins.trac.wordpress.org/changeset/3757452/w3-total-cache/trunk/PgCache_ContentGrabber.php), so updating to a release that contains that commit is the primary remedy; a tagged patched version number is not independently confirmed in the available data, so verify the changelog before assuming 2.10.7's successor is covered. Where an update cannot be applied immediately, the fix itself indicates the effective compensating actions: clear the retained pgcache.rest setting (set it to empty) so the unlicensed REST cache mode is dropped, and then flush the 'rest' cache group plus the default page cache group so any already-cached ungrouped responses are removed - the trade-off is that a full page cache flush temporarily degrades performance and forces origin load until the cache rewarms. Administrators who cannot flush should instead disable Disk Enhanced page caching entirely, which removes the static HTML serving path but costs the plugin's main performance benefit. Because the assessed prerequisites require an existing approved-commenter identity, auditing and pruning stale approved commenter accounts on migrated Pro-to-free sites limits the attacker foothold, at the cost of removing legitimate commenters. Confirm current guidance against the Wordfence advisory referenced above.
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 (BoldGrid) is a WordPress page and object caching plugin. In Disk Enhanced page cache mode it writes responses to static files on disk that the web server later serves directly, with the file extension chosen from the response media type; the plugin's Pro-tier REST caching feature additionally places REST responses into a dedicated 'rest' cache group. CWE-79 (improper neutralization of input during web page generation) is the root cause class here, and the vendor commit shows the fix concentrated on the interaction between licensing state and cache key/media-type handling rather than on the comment field alone: the new release_pro_rest_cache_if_unlicensed() routine detects that pgcache.rest is still set to 'cache' while Pro is inactive, clears the setting, saves config and flushes both the 'rest' and default cache groups; a new is_rest_cache_active() helper gates cache read, write, group assignment and request rejection on both the setting and licence state; _enhanced_key_postfix() now emits a .json extension for JSON and +json media types so those bodies are no longer stored under an HTML key; and _headers() adds a nosniff header when the cached body is not HTML. The referenced pre-patch source lines in Licensing_Plugin_Admin.php and PgCache_ContentGrabber.php (lines 1450 and 1719 of the 2.10.7 tag) mark where the retained Pro REST cache mode and the ungrouped cache key postfix logic lived.
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
Requires a lapsed-Pro retained-REST-cache configuration (AC:H) and an already-approved commenter identity (PR:L); stored XSS runs in the victim's browser (S:C) with limited C/I and no availability impact.
Primary rating from Vendor (Wordfence).
CVSS VectorNVD
DescriptionNVD
The W3 Total Cache plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'comment' parameter in all versions up to, and including, 2.10.7 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 a Pro license was previously active with REST caching enabled and has since become inactive while Disk Enhanced page caching remains configured, and that the attacker holds a previously approved commenter identity.
Executive ViewAI
CVE-2026-111254 is a stored cross-site scripting vulnerability in the W3 Total Cache WordPress plugin affecting all versions through 2.10.7, potentially allowing unauthorized script execution for site visitors. Leadership should prioritize remediation this week for any deployments where the Pro license has lapsed and Disk Enhanced caching remains active, as those configurations carry elevated risk despite no known active exploitation.
Apply vendor patch.
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 the W3 Total Cache plugin for WordPress (all versions up to and including 2.10.6) lets un
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
EUVD-2026-114591
GHSA-9wg2-5m8p-rghq
NVD
CVE.org
EPSS
Exploit-DB