W3 Total Cache <= 2.8.12 - Unauthenticated Command Injection
Strategic Overview
- Status
- Patched in 2.8.13
- Affected Plugin
- W3 Total Cache
- Affected Version
<= 2.8.12- CVSS
- 8.1High
- Weakness type
- CWE-78 · Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')
- CVE
CVE-2025-9501
At a glance
CVE-2025-9501 is a high-severity Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') vulnerability in the W3 Total Cache WordPress plugin, affecting versions <= 2.8.12. It carries a CVSS score of 8.1 (reachable over the network; high confidentiality, integrity, availability impact). Exploitation requires no authentication. The issue is fixed in version 2.8.13; sites on affected versions should update now. Disclosed October 2025, reported by wesley (wcraft).
Vulnerability Overview
The W3 Total Cache plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 2.8.12 via _parse_dynamic_mfunc . This makes it possible for unauthenticated attackers to execute code on the server when comments are enabled and a post has been incorrectly injected with the mfunc tags. Please note we consider this to be a theoretical issue, and as such we rejected the original report from the researcher who then submitted this to WPScan. WPScan assigned a CVE ID, but we do not agree that this is a true security vulnerability. Exploitation of this issue is theoretical and requires gaining access to a secret value much like gaining access to a password.
Technical Analysis
The vector marks this flaw as remotely reachable over the network, and no privileges on the target site, and no interaction from a victim user. A successful exploit has high impact on confidentiality, integrity, availability — full site compromise territory.
CWE-78: Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')
The product constructs all or part of an OS command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended OS command when it is sent to a downstream component.
Remediation
Update to version 2.8.13, or a newer patched version
How does WordSec protect against this?
Requests carrying this pattern arrive without a session, so nothing upstream of the firewall gets a chance to reject them: WordSec's web application firewall inspects request payloads before WordPress loads them. Classes like this one can leave something behind, so the staged malware scanner is the second half: it looks for dropped files and modified code rather than for the request that created them. None of that substitutes for the fix: W3 Total Cache 2.8.13 closes this, and updating the plugin is the step that ends it.
- Firewall
- Scanner
- Login Security
External References
Related records
Other vulnerabilities in W3 Total Cache
- 9.8CVE-2026-27384: W3 Total Cache <= 2.9.1 Arbitrary Code Execution
CVE-2026-27384 - 9.8CVE-2013-2010: W3 Total Cache <= 0.9.2.8 Remote Code Execution
CVE-2013-2010 - 8.8W3 Total Cache <= 0.9.4.1 Arbitrary File Upload
- 8.8W3 Total Cache <= 0.9.4 CSRF leading to Stored Cross-Site Scripting
- 8.6W3 Total Cache <= 0.9.4 SSRF leading to Host Information Disclosure
- 8.5CVE-2024-12365: W3 Total Cache <= 2.8.1 Server-Side Request Forgery
CVE-2024-12365 - 8.1CVE-2026-57623: W3 Total Cache <= 2.9.4 Arbitrary Code Execution
CVE-2026-57623 - 7.7CVE-2022-31090: Guzzle <= 6.5.7 and 7.0-7.4.4 - Information Exposure
CVE-2022-31090
Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C