CVE-2026-103896

10Web Booster <= 2.34.5 - Unauthenticated Limited File Write / Cache Poisoning via Query-string Parameter Traversal in Page-Cache Path

2026-10-15 17:03
Swayam Bhageria

Strategic Overview

Status
Patched in 2.34.8
Affected Version
<= 2.34.5
CVSS
7.5High
Weakness type
CWE-22 · Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
CVE
CVE-2026-103896
View all 10Web Booster – Website speed optimization, Cache & Page Speed optimizer vulnerabilities

At a glance

CVE-2026-103896 is a high-severity Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') vulnerability in the 10Web Booster WordPress plugin, affecting versions <= 2.34.5. It carries a CVSS score of 7.5 (reachable over the network; low attack complexity; high integrity impact). Exploitation requires no authentication. The issue is fixed in version 2.34.8; sites on affected versions should update now. Disclosed October 2026, reported by Swayam Bhageria.

Vulnerability Overview

The 10Web Booster – Website speed optimization, Cache & Page Speed optimizer plugin for WordPress is vulnerable to a limited file write via path traversal in versions up to, and including, 2.34.5 This is due to the OptimizerWebPageCache::get_cache_file_dir() function concatenating raw, unsanitized $_GET parameter names and values into the on-disk cache path, and the cache_content() sink calling mkdir() and file_put_contents() on the result with no realpath containment check — unlike the sibling delete_page_cache(), which does perform one. This makes it possible for unauthenticated attackers to create arbitrary directories (mode 0777, recursively) outside the cache root and write a cached page into them. The write is LIMITED: the filename is always 'source.html', so the extension is fixed, and the content is the rendered page buffer rather than attacker-supplied data. PHP files cannot be written and code execution is not possible; the demonstrated impact is cache poisoning and arbitrary directory creation.

Technical Analysis

The vector marks this flaw as remotely reachable over the network, with low attack complexity — no special timing or configuration is needed, and no privileges on the target site, and no interaction from a victim user. A successful exploit has high impact on integrity.

CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

10Web Booster <= 2.34.5 carries this weakness at get_cache_file_dir(), and reaching it takes no account at all. Path traversal happens when user-controlled text is used to build a filesystem path without being constrained to an intended directory, so sequences like ../ walk the resolved path somewhere else.

Depending on the operation, it means reading files outside the intended folder — wp-config.php being the usual target — or writing to and deleting paths the web server can touch. For 10Web Booster the fix is 2.34.8: builds <= 2.34.5 are affected, anything from 2.34.8 onward is not.

Remediation

Update to version 2.34.8, 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. None of that substitutes for the fix: 10Web Booster 2.34.8 closes this, and updating the plugin is the step that ends it.

  • Firewall
  • Login Security
  • Alerts

External References

Related records

Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C