LOWCVSS not yet scoredVulnerability

CVE-2026-55458

### AI Disclosure This vulnerability was discovered via deepseek-v4-pro[1m] for finding potential vulnerabilities / inconsistencies in the code base. I made the AI check if Caddy is compliant with various RFCs, incl. 7230. I also used it to help write the PoC, since it was honestly much faster than writing it by hand. I also let it write parts of this advisory text for brevity's sake, but had to rewrite half of it by hand. ### Summary Caddy's reverse proxy fails to strip RFC 7230 hop-by-hop headers from upstream responses when handling WebSocket upgrades (HTTP 101 Switching Protocols). Headers including `Alt-Svc`, `Keep-Alive`, `Proxy-Authenticate`, `Transfer-Encoding`, or `Trailer`, which Caddy actually correctly strips for normal HTTP responses, pass through unfiltered to the client during protocol upgrades. An upstream that sets these headers (intentionally or otherwise) can inject them into client responses, enabling connection hijacking via `Alt-Svc`, cookie injection via `Set-Cookie`, and proxy authentication phishing. The normal response path in `finalizeResponse` correctly strips all hop-by-hop headers before forwarding, but the 101 code path returns early, skipping the stripping entirely. ### Details In `modules/caddyhttp/reverseproxy/reverseproxy.go`, the `finalizeResponse` method (line 1178) handles upstream responses. For all normal responses, it strips hop-by-hop headers before copying to the client: ```go // reverseproxy.go:1194-1198 removeConnectionHeaders(res.Header) for _, h := range hopHeaders { res.Header.Del(h) } ``` However, the 101 Switching Protocols check at line 1187 returns before this stripping code: ```go // reverseproxy.go:1186-1192 if res.StatusCode == http.StatusSwitchingProtocols { var wg sync.WaitGroup h.handleUpgradeResponse(logger, &wg, rw, req, res) wg.Wait() return nil // <-- returns BEFORE removeConnectionHeaders and hopHeaders loop } ``` Inside `handleUpgradeResponse` (`streaming.go:60-91`), all u

Properties

Ghsa id
GHSA-8qx7-j2v2-x6q5
Summary
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Severity
low
Last source
GitHub Advisory Database
Cve id
CVE-2026-55458
First seen by Signal
2026-10-28T23:45:49+00:00
Is ghsa only
false
Retrieved at
2026-10-28T23:45:49+00:00
Ghsa published
2026-10-28T19:49:33Z
Source url
https://github.com/advisories/GHSA-8qx7-j2v2-x6q5
Ghsa updated
2026-10-28T19:49:34Z

Related Entities (3)

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-55458 — Ninja Signal Threat Intelligence | Ninja Signal