{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-103896","assignerOrgId":"b15e7b5b-3da4-40ae-a43c-f7aa60e62599","state":"PUBLISHED","assignerShortName":"Wordfence","dateReserved":"2026-10-01T13:50:51.051Z","datePublished":"2026-10-16T05:30:24.365Z","dateUpdated":"2026-10-16T15:09:39.142Z"},"containers":{"cna":{"providerMetadata":{"orgId":"b15e7b5b-3da4-40ae-a43c-f7aa60e62599","shortName":"Wordfence","dateUpdated":"2026-10-16T05:30:24.365Z"},"affected":[{"vendor":"10web","product":"10Web Booster – Website speed optimization, Cache & Page Speed optimizer","versions":[{"version":"0","status":"affected","lessThanOrEqual":"2.34.5","versionType":"semver"}],"defaultStatus":"unaffected"}],"descriptions":[{"lang":"en","value":"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."}],"title":"10Web Booster <= 2.34.5 - Unauthenticated Limited File Write / Cache Poisoning via Query-string Parameter Traversal in Page-Cache Path","references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/83e672e7-2483-46e9-ae16-a9e7ccc4bcb8?source=cve"},{"url":"https://plugins.trac.wordpress.org/browser/tenweb-speed-optimizer/tags/2.34.5/includes/WebPageCache/OptimizerWebPageCache.php#L205"},{"url":"https://plugins.trac.wordpress.org/browser/tenweb-speed-optimizer/tags/2.34.5/includes/WebPageCache/OptimizerWebPageCache.php#L190"},{"url":"https://plugins.trac.wordpress.org/browser/tenweb-speed-optimizer/tags/2.34.5/includes/WebPageCache/OptimizerWebPageCache.php#L312"},{"url":"https://plugins.trac.wordpress.org/browser/tenweb-speed-optimizer/tags/2.34.5/includes/WebPageCache/OptimizerWebPageValidations.php#L299"},{"url":"https://plugins.trac.wordpress.org/browser/tenweb-speed-optimizer/tags/2.34.8"}],"problemTypes":[{"descriptions":[{"lang":"en","description":"CWE-22 Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')","cweId":"CWE-22","type":"CWE"}]}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","baseScore":7.5,"baseSeverity":"HIGH"}}],"credits":[{"lang":"en","type":"finder","value":"Swayam Bhageria"}],"timeline":[{"time":"2026-10-01T14:06:02.000Z","lang":"en","value":"Vendor Notified"},{"time":"2026-10-15T17:03:48.000Z","lang":"en","value":"Disclosed"}]},"adp":[{"metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-103896","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2026-10-16T14:55:48.533241Z"}}}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2026-10-16T15:09:39.142Z"}}]}}