Description
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.
Published: 2026-06-23
Score: 8.1 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Caddy is an extensible server platform that uses TLS by default. From version 2.7.0 until 2.11.3 the FastCGI transport’s splitPos() 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 file (or other configured split_path extension) as a script. In deployments where the attacker can place content into a file served via FastCGI, such as uploads or file storage, a crafted URL that triggers either flaw can result in remote code execution. The vulnerability is fixed in 2.11.3, and the CVSS base score of 8.1 reflects its severity.

Affected Systems

The vulnerability affects the Caddy Server (caddyserver:caddy) in all releases from version 2.7.0 up to and including version 2.11.2, which are known to contain the flawed splitPos implementation. Versions 2.11.3 and later include the fix and are no longer impacted.

Risk and Exploitability

An attacker who can upload or place arbitrary content into a path served via FastCGI—such as through a file‑upload feature or storage endpoint—can construct a URL containing a non‑ASCII byte. The malformed path causes the server to drop the file extension and execute it as a FastCGI script, giving the attacker remote command execution. The vulnerability lacks an EPSS entry, indicating the available data does not quantify exploitation probability at present, and it is not listed in the CISA KEV catalog. Nonetheless, the CVSS score of 8.1 and the feasibility of exploitation through ordinary HTTP requests render the risk high and the attack vector likely remote via the web front end.

Generated by OpenCVE AI on June 24, 2026 at 10:19 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Caddy to version 2.11.3 or later, which contains the fixed splitPos implementation.
  • If an immediate upgrade is not possible, limit FastCGI reverse‑proxy usage to only established script extensions (e.g., .php) and prevent arbitrary file upload to paths served by FastCGI.
  • Sanitize incoming request URLs on the edge or by a front‑end reverse proxy to reject or normalize non‑ASCII path segments before they reach Caddy's FastCGI handler.

Generated by OpenCVE AI on June 24, 2026 at 10:19 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-m675-2p33-xv9g Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files
History

Tue, 23 Jun 2026 22:15:00 +0000

Type Values Removed Values Added
First Time appeared Caddyserver
Caddyserver caddy
Vendors & Products Caddyserver
Caddyserver caddy

Tue, 23 Jun 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Tue, 23 Jun 2026 18:15:00 +0000

Type Values Removed Values Added
Description 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.
Title Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files
Weaknesses CWE-176
CWE-178
CWE-20
References
Metrics cvssV3_1

{'score': 8.1, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H'}


Subscriptions

Caddyserver Caddy
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-06-23T18:30:27.933Z

Reserved: 2026-05-08T20:08:17.209Z

Link: CVE-2026-45135

cve-icon Vulnrichment

Updated: 2026-06-23T18:30:20.563Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-06-24T10:30:14Z

Weaknesses
  • CWE-176

    Improper Handling of Unicode Encoding

  • CWE-178

    Improper Handling of Case Sensitivity

  • CWE-20

    Improper Input Validation