{"id":"CVE-2026-45135","published":"2026-06-23T17:56:42Z","modified":"2026-06-23T18:30:27Z","title":"Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files","vendor":"caddyserver","product":"caddy","tier":"tail","description":{"text":"Caddy is an extensible server platform that uses TLS by default. From 2.7.0 until 2.11.3, the FastCGI transport's splitPos() in modules/caddyhttp/reverseproxy/fastcgi/fastcgi.go misuses golang.org/x/text/search with search.IgnoreCase when the request path contains a non-ASCII byte. Two distinct flaws in that fallback let an attacker mislead Caddy's FastCGI splitting into treating a non-.php (or other configured split_path extension) file as a script. In any deployment where the attacker can place content into a file served via FastCGI (uploads, file storage, etc.), this can be escalated to remote code execution by crafting a URL whose path triggers either flaw. This vulnerability is fixed in 2.11.3.","provenance":"source","from":"CVE.org"},"cvss":{"score":8.1,"severity":"HIGH","version":"3.1","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","provenance":"source","from":"CVE.org CNA"},"epss":{"score":0.00676,"percentile":0.52081,"provenance":"source"},"cwes":[{"id":"CWE-20","name":"Improper Input Validation"},{"id":"CWE-176","name":"Improper Handling of Unicode Encoding"},{"id":"CWE-178","name":"Improper Handling of Case Sensitivity"}],"references":[{"url":"https://github.com/caddyserver/caddy/security/advisories/GHSA-m675-2p33-xv9g","tags":["x_refsource_CONFIRM"]}],"priority":{"score":16.1,"factors":[{"name":"EPSS percentile","points":10.42},{"name":"CVSS severity","points":5.67}]},"vendorSlug":"caddyserver","affectedVersions":[{"vendor":"caddyserver","product":"caddy","versions":[">= 2.7.0, < 2.11.3"]}],"affected":[{"ecosystem":"Go","package":"github.com/caddyserver/caddy/v2","vulnerableRanges":[">=2.7.0, <2.11.3"],"patched":["2.11.3"],"from":["GHSA-m675-2p33-xv9g","GO-2026-5492"],"provenance":"source"}],"euvd":{"id":"EUVD-2026-38560","exploited":false,"provenance":"source"},"lineage":{"familyId":"fam-php-frankenphp-cve-2026-24895","parents":[{"from":"CVE-2026-24895","to":"CVE-2026-45135","relation":"related","confidence":"high","kind":"lineage","evidence":[{"kind":"osv-related","provenance":"source","id":"GHSA-m675-2p33-xv9g","via":"reference","url":"https://github.com/php/frankenphp/security/advisories/GHSA-g966-83w7-6w38"},{"kind":"osv-related","provenance":"source","id":"GO-2026-5492","via":"reference","url":"https://github.com/php/frankenphp/security/advisories/GHSA-g966-83w7-6w38"}]},{"from":"CVE-2026-45062","to":"CVE-2026-45135","relation":"related","confidence":"high","kind":"lineage","evidence":[{"kind":"osv-related","provenance":"source","id":"GHSA-m675-2p33-xv9g","via":"reference","url":"https://github.com/php/frankenphp/security/advisories/GHSA-3g8v-8r37-cgjm"},{"kind":"osv-related","provenance":"source","id":"GO-2026-5492","via":"reference","url":"https://github.com/php/frankenphp/security/advisories/GHSA-3g8v-8r37-cgjm"}]}],"packageHistory":[{"cve":"CVE-2026-27590","published":"2026-02-24","fixed":"2.11.1","kev":false},{"cve":"CVE-2026-30851","published":"2026-03-07","fixed":"2.11.2","kev":false},{"cve":"CVE-2026-30852","published":"2026-03-07","fixed":"2.11.2","kev":false,"link":{"from":"CVE-2026-30852","to":"CVE-2026-45135","relation":"successor","confidence":"low","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"Go:github.com/caddyserver/caddy/v2","fromFixed":"2.11.2","toFixed":"2.11.3","daysApart":108}]}},{"cve":"CVE-2026-45135","published":"2026-06-23","fixed":"2.11.3","kev":false},{"cve":"CVE-2026-45692","published":"2026-06-23","fixed":"2.11.3","kev":false},{"cve":"CVE-2026-52844","published":"2026-06-23","fixed":"2.11.4","kev":false},{"cve":"CVE-2026-52845","published":"2026-06-23","fixed":"2.11.4","kev":false}],"package":"Go:github.com/caddyserver/caddy/v2"}}