CVE-2026-45135: Caddyserver Caddy Remote Code Execution in FastCGI splitPos

CVE-2026-45135 · Severity: high · CVSS 8.1 · Published 2026-06-23

Caddy is a popular web server platform used to host websites and proxy traffic. A vulnerability in how it handles specific web requests allows attackers to trick the server into executing malicious code hidden in uploaded files or storage. This could lead to a full system takeover if an attacker is able to upload a file to the server, even if that file does not have a standard script extension like .php.

Technologies: github.com/caddyserver/caddy/v2 (Go). Vendors: Go.

Quick answers

Is CVE-2026-45135 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-45135 being exploited in the wild.
How severe is CVE-2026-45135?
High severity, with a CVSS score of 8.1, published 23 June 2026.
Which products and versions are affected?
github.com/caddyserver/caddy/v2 (Go) >= 2.7.0, <= 2.10.2, SEMVER:introduced=2.7.0,fixed=2.11.3.
Is there a fix for CVE-2026-45135?
Yes. github.com/caddyserver/caddy/v2 (Go): upgrade to 2.11.3 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-45135 attacked?
It is attacked over the network, in a hosted service.
Am I affected by CVE-2026-45135?
Check whether you run github.com/caddyserver/caddy/v2 (Go) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • github.com/caddyserver/caddy/v2 (Go): upgrade to 2.11.3 or later
    go get github.com/caddyserver/caddy/v2@v2.11.3

Technical details

A vulnerability exists in Caddy's FastCGI transport module due to improper handling of Unicode characters in the splitPos() function. The root cause is the misuse of the golang.org/x/text/search library with IgnoreCase, which performs complex Unicode equivalence matching that allows non-ASCII characters (like bold or script-style letters) to be interpreted as standard ASCII extensions (e.g., '.php'). Additionally, a logic error in the loop control flow can cause the server to incorrectly validate a file as a script if a non-ASCII byte is encountered. An unauthenticated remote attacker can exploit this by crafting a URL with specific Unicode sequences to bypass extension checks. If the attacker can also upload or place files on the server, this leads to Remote Code Execution (RCE) via the FastCGI upstream. The issue is resolved in version 2.11.3 by removing the unsafe Unicode fallback.

Affected products

  • Caddyserver Caddy >= 2.7.0, < 2.11.3

Identifiers

  • CVE-2026-45135
  • GHSA-m675-2p33-xv9g
  • GO-2026-5492

Timeline

  • 2026-05-13: advisory: GitHub advisory published by maintainers
  • 2026-06-23: disclosed: CVE published to NVD
  • 2026-06-23: patched: Fix confirmed in version 2.11.3

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.