Severity by source
AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
AC:H because exploitation requires the Lazy Load Images feature to be enabled, a deployment condition entirely beyond attacker control; S:C and C:L/I:L reflect stored XSS scope change into victim browsers with no server availability impact.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
Lifecycle Timeline
2DescriptionCVE.org
The W3 Total Cache plugin for WordPress is vulnerable to Stored Cross-Site Scripting via Comment Author Name in all versions up to, and including, 2.10.3 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 Lazy Load Images feature of W3 Total Cache is enabled, as the unsafe re-emission occurs exclusively within the LazyLoad mutator's img tag rewriting step.
AnalysisAI
Stored cross-site scripting in W3 Total Cache WordPress plugin (all versions through 2.10.3) allows unauthenticated attackers to inject and persistently execute arbitrary JavaScript in victim browsers by embedding malicious content in the Comment Author Name field. The payload is activated exclusively when the plugin's Lazy Load Images feature is enabled, as the unsafe output occurs within the LazyLoad mutator's img tag rewriting step. No public exploit code or CISA KEV listing is identified at time of analysis, but the network-accessible, unauthenticated attack vector with scope change represents meaningful risk for any WordPress site with both public commenting and lazy load simultaneously active.
Technical ContextAI
W3 Total Cache (CPE: cpe:2.3:a:boldgrid:w3_total_cache:*:*:*:*:*:*:*:*) is a performance caching plugin for WordPress developed by BoldGrid. The vulnerable component is the UserExperience_LazyLoad_Mutator class, which post-processes HTML output to rewrite img tags for deferred loading. The Trac source references identify specific sinks at UserExperience_LazyLoad_Mutator.php lines 85, 162, and 403, as well as UserExperience_LazyLoad_Plugin.php line 116, where the Comment Author Name is re-emitted into rewritten img tag markup without invoking WordPress's standard escaping functions (e.g., esc_attr or esc_html). CWE-79 (Improper Neutralization of Input During Web Page Generation) precisely describes this root cause: user-supplied data accepted at one trust boundary - the comment submission form - is later re-emitted into an HTML attribute or content context without output encoding, creating a stored XSS sink that fires for every subsequent page visitor.
RemediationAI
Upgrade W3 Total Cache to version 2.10.4 or later; the patch is confirmed via the WordPress plugin Trac changeset at https://plugins.trac.wordpress.org/changeset/3635675/w3-total-cache/trunk/UserExperience_LazyLoad_Mutator.php, which corrects the unsafe re-emission in UserExperience_LazyLoad_Mutator.php. If immediate upgrade is not feasible, disabling the Lazy Load Images feature within the W3 Total Cache plugin settings eliminates the vulnerable code path entirely, at the trade-off of losing the page load performance benefit that lazy loading provides. A secondary workaround is to close or restrict WordPress comment sections on affected pages, removing the injection entry point - though this impacts site engagement. Sites using a WAF can deploy a rule blocking script content in comment author name fields as a partial, defense-in-depth measure. The Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/16ac73ae-6a0a-4c9b-8830-e0745061e587 provides supplemental detail.
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
Path traversal in W3 Total Cache WordPress plugin (versions ≤ 2.10.2) enables remote unauthenticated attackers to manipu
W3 Total Cache for WordPress (versions through 2.9.1) exposes Author-role users to administrative plugin functions due t
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-58570
GHSA-9qc5-qhm2-7hh3