CVE-2026-45135
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files
Impact
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.
Affected packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| go | github.com/caddyserver/caddy/v2 | >= 2.7.0, <= 2.10.2 | 2.11.3 |
Affected products
| Vendor | Product | Affected versions |
|---|---|---|
| Caddyserver | Caddy | from 2.7.0 before 2.11.3 |
Weakness classification
References
- NVD record
- CVE.org record
- GitHub advisory
- https://github.com/advisories/GHSA-m675-2p33-xv9g
- https://github.com/caddyserver/caddy/security/advisories/GHSA-m675-2p33-xv9g
- https://github.com/php/frankenphp/security/advisories/GHSA-3g8v-8r37-cgjm
- https://github.com/php/frankenphp/security/advisories/GHSA-g966-83w7-6w38
- https://nvd.nist.gov/vuln/detail/CVE-2026-45135