github.com/caddyserver/caddy/v2
Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS
Activity
- Latest release
- 3w ago
- Total releases
- 62
- Cadence
- ~23 days
- Last 12 months
- 10
Reach
- Stars
- 77.6k
Details
- First release
- Sep 13, 2019
| Version | Released | |
|---|---|---|
v2.11.7
patch
|
v2.11.7
patch
Dependencies (54)
+ 46 more |
|
v2.11.6
patch
|
v2.11.6
patch
Dependencies (53)
+ 45 more |
|
v2.11.5
patch
|
v2.11.5
patch
Dependencies (53)
+ 45 more |
|
v2.11.4
patch
1 CVE
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev |
v2.11.4
patch
Dependencies (51)
+ 43 more |
|
v2.11.3
patch
5 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev |
v2.11.3
patch
Dependencies (51)
+ 43 more |
|
v2.11.2
patch
9 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45135
GO-2026-5492
GHSA-m675-2p33-xv9g
Jul 24, 2026
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5730
GHSA-wwhq-w58m-w29c
Jul 24, 2026
Caddy CVE-2026-30852 Fix Bypass in github.com/caddyserver/caddy Caddy CVE-2026-30852 Fix Bypass in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev |
v2.11.2
patch
Dependencies (50)
+ 42 more |
|
v2.11.1
patch
11 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45135
GO-2026-5492
GHSA-m675-2p33-xv9g
Jul 24, 2026
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5730
GHSA-wwhq-w58m-w29c
Jul 24, 2026
Caddy CVE-2026-30852 Fix Bypass in github.com/caddyserver/caddy Caddy CVE-2026-30852 Fix Bypass in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-30852
GO-2026-4644
GHSA-m2w3-8f23-hxxf
Mar 10, 2026
Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-30851
GO-2026-4639
GHSA-7r4p-vjf4-gxv4
Mar 10, 2026
Caddy forward_auth copy_headers allows Identity Injection and Privilege Escalation in github.com/caddyserver/caddy Caddy forward_auth copy_headers Does Not Strip Client-Supplied Headers, Allowing Identity Injection and Privilege Escalation in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev |
v2.11.1
patch
Dependencies (50)
+ 42 more |
|
v2.11.0
minor
17 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45135
GO-2026-5492
GHSA-m675-2p33-xv9g
Jul 24, 2026
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5730
GHSA-wwhq-w58m-w29c
Jul 24, 2026
Caddy CVE-2026-30852 Fix Bypass in github.com/caddyserver/caddy Caddy CVE-2026-30852 Fix Bypass in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-30852
GO-2026-4644
GHSA-m2w3-8f23-hxxf
Mar 10, 2026
Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-30851
GO-2026-4639
GHSA-7r4p-vjf4-gxv4
Mar 10, 2026
Caddy forward_auth copy_headers allows Identity Injection and Privilege Escalation in github.com/caddyserver/caddy Caddy forward_auth copy_headers Does Not Strip Client-Supplied Headers, Allowing Identity Injection and Privilege Escalation in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.11.0
minor
Dependencies (50)
+ 42 more |
|
v2.11.0-beta.2
pre
16 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45135
GO-2026-5492
GHSA-m675-2p33-xv9g
Jul 24, 2026
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-30852
GO-2026-4644
GHSA-m2w3-8f23-hxxf
Mar 10, 2026
Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-30851
GO-2026-4639
GHSA-7r4p-vjf4-gxv4
Mar 10, 2026
Caddy forward_auth copy_headers allows Identity Injection and Privilege Escalation in github.com/caddyserver/caddy Caddy forward_auth copy_headers Does Not Strip Client-Supplied Headers, Allowing Identity Injection and Privilege Escalation in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.11.0-beta.2
pre
Dependencies (49)
+ 41 more |
|
v2.11.0-beta.1
pre
16 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45135
GO-2026-5492
GHSA-m675-2p33-xv9g
Jul 24, 2026
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-30852
GO-2026-4644
GHSA-m2w3-8f23-hxxf
Mar 10, 2026
Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-30851
GO-2026-4639
GHSA-7r4p-vjf4-gxv4
Mar 10, 2026
Caddy forward_auth copy_headers allows Identity Injection and Privilege Escalation in github.com/caddyserver/caddy Caddy forward_auth copy_headers Does Not Strip Client-Supplied Headers, Allowing Identity Injection and Privilege Escalation in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.11.0-beta.1
pre
Dependencies (49)
+ 41 more |
|
v2.10.2
patch
16 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45135
GO-2026-5492
GHSA-m675-2p33-xv9g
Jul 24, 2026
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-30852
GO-2026-4644
GHSA-m2w3-8f23-hxxf
Mar 10, 2026
Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-30851
GO-2026-4639
GHSA-7r4p-vjf4-gxv4
Mar 10, 2026
Caddy forward_auth copy_headers allows Identity Injection and Privilege Escalation in github.com/caddyserver/caddy Caddy forward_auth copy_headers Does Not Strip Client-Supplied Headers, Allowing Identity Injection and Privilege Escalation in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.10.2
patch
Dependencies (49)
+ 41 more |
|
v2.10.1
patch
16 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45135
GO-2026-5492
GHSA-m675-2p33-xv9g
Jul 24, 2026
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-30852
GO-2026-4644
GHSA-m2w3-8f23-hxxf
Mar 10, 2026
Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-30851
GO-2026-4639
GHSA-7r4p-vjf4-gxv4
Mar 10, 2026
Caddy forward_auth copy_headers allows Identity Injection and Privilege Escalation in github.com/caddyserver/caddy Caddy forward_auth copy_headers Does Not Strip Client-Supplied Headers, Allowing Identity Injection and Privilege Escalation in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.10.1
patch
Dependencies (49)
+ 41 more |
|
v2.10.0
minor
16 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45135
GO-2026-5492
GHSA-m675-2p33-xv9g
Jul 24, 2026
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-30852
GO-2026-4644
GHSA-m2w3-8f23-hxxf
Mar 10, 2026
Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-30851
GO-2026-4639
GHSA-7r4p-vjf4-gxv4
Mar 10, 2026
Caddy forward_auth copy_headers allows Identity Injection and Privilege Escalation in github.com/caddyserver/caddy Caddy forward_auth copy_headers Does Not Strip Client-Supplied Headers, Allowing Identity Injection and Privilege Escalation in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.10.0
minor
Dependencies (49)
+ 41 more |
|
v2.10.0-beta.4
pre
15 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45135
GO-2026-5492
GHSA-m675-2p33-xv9g
Jul 24, 2026
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-30852
GO-2026-4644
GHSA-m2w3-8f23-hxxf
Mar 10, 2026
Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.10.0-beta.4
pre
Dependencies (49)
+ 41 more |
|
v2.10.0-beta.3
pre
15 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45135
GO-2026-5492
GHSA-m675-2p33-xv9g
Jul 24, 2026
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-30852
GO-2026-4644
GHSA-m2w3-8f23-hxxf
Mar 10, 2026
Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.10.0-beta.3
pre
Dependencies (49)
+ 41 more |
|
v2.10.0-beta.2
pre
15 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45135
GO-2026-5492
GHSA-m675-2p33-xv9g
Jul 24, 2026
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-30852
GO-2026-4644
GHSA-m2w3-8f23-hxxf
Mar 10, 2026
Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.10.0-beta.2
pre
Dependencies (49)
+ 41 more |
|
v2.10.0-beta.1
pre
15 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45135
GO-2026-5492
GHSA-m675-2p33-xv9g
Jul 24, 2026
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-30852
GO-2026-4644
GHSA-m2w3-8f23-hxxf
Mar 10, 2026
Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.10.0-beta.1
pre
Dependencies (49)
+ 41 more |
|
v2.9.1
patch
15 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45135
GO-2026-5492
GHSA-m675-2p33-xv9g
Jul 24, 2026
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-30852
GO-2026-4644
GHSA-m2w3-8f23-hxxf
Mar 10, 2026
Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.9.1
patch
Dependencies (46)
+ 38 more |
|
v2.9.0
minor
15 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45135
GO-2026-5492
GHSA-m675-2p33-xv9g
Jul 24, 2026
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-30852
GO-2026-4644
GHSA-m2w3-8f23-hxxf
Mar 10, 2026
Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.9.0
minor
Dependencies (46)
+ 38 more |
|
v2.9.0-beta.3
pre
15 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45135
GO-2026-5492
GHSA-m675-2p33-xv9g
Jul 24, 2026
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-30852
GO-2026-4644
GHSA-m2w3-8f23-hxxf
Mar 10, 2026
Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.9.0-beta.3
pre
Dependencies (46)
+ 38 more |
|
v2.9.0-beta.2
pre
15 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45135
GO-2026-5492
GHSA-m675-2p33-xv9g
Jul 24, 2026
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-30852
GO-2026-4644
GHSA-m2w3-8f23-hxxf
Mar 10, 2026
Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.9.0-beta.2
pre
Dependencies (45)
+ 37 more |
|
v2.9.0-beta.1
pre
15 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45135
GO-2026-5492
GHSA-m675-2p33-xv9g
Jul 24, 2026
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-30852
GO-2026-4644
GHSA-m2w3-8f23-hxxf
Mar 10, 2026
Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.9.0-beta.1
pre
Dependencies (45)
+ 37 more |
|
v2.8.4
patch
15 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45135
GO-2026-5492
GHSA-m675-2p33-xv9g
Jul 24, 2026
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-30852
GO-2026-4644
GHSA-m2w3-8f23-hxxf
Mar 10, 2026
Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.8.4
patch
Dependencies (45)
+ 37 more |
|
v2.8.2
patch
15 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45135
GO-2026-5492
GHSA-m675-2p33-xv9g
Jul 24, 2026
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-30852
GO-2026-4644
GHSA-m2w3-8f23-hxxf
Mar 10, 2026
Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.8.2
patch
Dependencies (45)
+ 37 more |
|
v2.8.1
patch
15 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45135
GO-2026-5492
GHSA-m675-2p33-xv9g
Jul 24, 2026
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-30852
GO-2026-4644
GHSA-m2w3-8f23-hxxf
Mar 10, 2026
Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.8.1
patch
Dependencies (45)
+ 37 more |
|
v2.8.0
minor
15 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45135
GO-2026-5492
GHSA-m675-2p33-xv9g
Jul 24, 2026
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-30852
GO-2026-4644
GHSA-m2w3-8f23-hxxf
Mar 10, 2026
Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.8.0
minor
Dependencies (45)
+ 37 more |
|
v2.7.5
patch
15 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45135
GO-2026-5492
GHSA-m675-2p33-xv9g
Jul 24, 2026
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-30852
GO-2026-4644
GHSA-m2w3-8f23-hxxf
Mar 10, 2026
Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Caddy's vars_regexp double-expands user input, leaking env vars and files in github.com/caddyserver/caddy Fixed in
2.11.2
References Updated Mar 23, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.7.5
patch
Dependencies (41)
+ 33 more |
|
v2.7.1
patch
14 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45135
GO-2026-5492
GHSA-m675-2p33-xv9g
Jul 24, 2026
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.7.1
patch
Dependencies (41)
+ 33 more |
|
v2.7.0
minor
14 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45135
GO-2026-5492
GHSA-m675-2p33-xv9g
Jul 24, 2026
Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Caddy: Unsafe Unicode Handling in FastCGI splitPos Allows Execution of Non-PHP Files in github.com/caddyserver/caddy Fixed in
2.11.3
References Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.7.0
minor
Dependencies (41)
+ 33 more |
|
v2.7.0-beta.2
pre
13 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.7.0-beta.2
pre
Dependencies (40)
+ 32 more |
|
v2.6.4
patch
13 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.6.4
patch
Dependencies (36)
+ 28 more |
|
v2.6.1
minor
13 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.6.1
minor
Dependencies (35)
+ 27 more |
|
v2.6.0-beta.5
pre
13 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.6.0-beta.5
pre
Dependencies (35)
+ 27 more |
|
v2.6.0-beta.3
pre
13 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.6.0-beta.3
pre
Dependencies (35)
+ 27 more |
|
v2.6.0-beta.2
pre
13 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.6.0-beta.2
pre
Dependencies (35)
+ 27 more |
|
v2.6.0-beta.1
pre
13 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.6.0-beta.1
pre
Dependencies (35)
+ 27 more |
|
v2.5.2
patch
13 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.5.2
patch
Dependencies (33)
+ 25 more |
|
v2.5.1
patch
13 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.5.1
patch
Dependencies (33)
+ 25 more |
|
v2.5.0
minor
13 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev |
v2.5.0
minor
Dependencies (33)
+ 25 more |
|
v2.5.0-rc.1
pre
14 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2022-29718
GHSA-2927-hv3p-f3vp
Jun 03, 2022
Open redirect in caddy
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
Caddy v2.4 was discovered to contain an open redirect vulnerability. A remote unauthenticated attacker may exploit this vulnerability to redirect users to arbitrary web URLs by tricking the victim users to click on crafted links. Fixed in
2.5.0
References
Updated Sep 10, 2026 · Source: OSV.dev |
v2.5.0-rc.1
pre
Dependencies (33)
+ 25 more |
|
v2.4.6
patch
15 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2022-28923
GO-2023-1567
GHSA-qpm3-vr34-h8w8
Feb 16, 2023
Open redirect in github.com/caddyserver/caddy/v2 Due to improper request sanitization, a crafted URL can cause the static file handler to redirect to an attacker chosen URL, allowing for open redirect attacks. Fixed in
2.5.0-beta.1
References Updated Feb 04, 2026 · Source: OSV.dev
CVE-2022-29718
GHSA-2927-hv3p-f3vp
Jun 03, 2022
Open redirect in caddy
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
Caddy v2.4 was discovered to contain an open redirect vulnerability. A remote unauthenticated attacker may exploit this vulnerability to redirect users to arbitrary web URLs by tricking the victim users to click on crafted links. Fixed in
2.5.0
References
Updated Sep 10, 2026 · Source: OSV.dev |
v2.4.6
patch
Dependencies (28)
+ 20 more |
|
v2.4.4
patch
15 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2022-28923
GO-2023-1567
GHSA-qpm3-vr34-h8w8
Feb 16, 2023
Open redirect in github.com/caddyserver/caddy/v2 Due to improper request sanitization, a crafted URL can cause the static file handler to redirect to an attacker chosen URL, allowing for open redirect attacks. Fixed in
2.5.0-beta.1
References Updated Feb 04, 2026 · Source: OSV.dev
CVE-2022-29718
GHSA-2927-hv3p-f3vp
Jun 03, 2022
Open redirect in caddy
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
Caddy v2.4 was discovered to contain an open redirect vulnerability. A remote unauthenticated attacker may exploit this vulnerability to redirect users to arbitrary web URLs by tricking the victim users to click on crafted links. Fixed in
2.5.0
References
Updated Sep 10, 2026 · Source: OSV.dev |
v2.4.4
patch
Dependencies (28)
+ 20 more |
|
v2.4.3
patch
15 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2022-28923
GO-2023-1567
GHSA-qpm3-vr34-h8w8
Feb 16, 2023
Open redirect in github.com/caddyserver/caddy/v2 Due to improper request sanitization, a crafted URL can cause the static file handler to redirect to an attacker chosen URL, allowing for open redirect attacks. Fixed in
2.5.0-beta.1
References Updated Feb 04, 2026 · Source: OSV.dev
CVE-2022-29718
GHSA-2927-hv3p-f3vp
Jun 03, 2022
Open redirect in caddy
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
Caddy v2.4 was discovered to contain an open redirect vulnerability. A remote unauthenticated attacker may exploit this vulnerability to redirect users to arbitrary web URLs by tricking the victim users to click on crafted links. Fixed in
2.5.0
References
Updated Sep 10, 2026 · Source: OSV.dev |
v2.4.3
patch
Dependencies (28)
+ 20 more |
|
v2.4.2
patch
15 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2022-28923
GO-2023-1567
GHSA-qpm3-vr34-h8w8
Feb 16, 2023
Open redirect in github.com/caddyserver/caddy/v2 Due to improper request sanitization, a crafted URL can cause the static file handler to redirect to an attacker chosen URL, allowing for open redirect attacks. Fixed in
2.5.0-beta.1
References Updated Feb 04, 2026 · Source: OSV.dev
CVE-2022-29718
GHSA-2927-hv3p-f3vp
Jun 03, 2022
Open redirect in caddy
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
Caddy v2.4 was discovered to contain an open redirect vulnerability. A remote unauthenticated attacker may exploit this vulnerability to redirect users to arbitrary web URLs by tricking the victim users to click on crafted links. Fixed in
2.5.0
References
Updated Sep 10, 2026 · Source: OSV.dev |
v2.4.2
patch
Dependencies (28)
+ 20 more |
|
v2.4.1
minor
15 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-45692
GO-2026-5743
GHSA-x5w9-xh9r-mvfc
Jul 07, 2026
Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Remote Admin Authorization Bypass in "/config" API via Array Index Normalization in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 07, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2022-28923
GO-2023-1567
GHSA-qpm3-vr34-h8w8
Feb 16, 2023
Open redirect in github.com/caddyserver/caddy/v2 Due to improper request sanitization, a crafted URL can cause the static file handler to redirect to an attacker chosen URL, allowing for open redirect attacks. Fixed in
2.5.0-beta.1
References Updated Feb 04, 2026 · Source: OSV.dev
CVE-2022-29718
GHSA-2927-hv3p-f3vp
Jun 03, 2022
Open redirect in caddy
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
Caddy v2.4 was discovered to contain an open redirect vulnerability. A remote unauthenticated attacker may exploit this vulnerability to redirect users to arbitrary web URLs by tricking the victim users to click on crafted links. Fixed in
2.5.0
References
Updated Sep 10, 2026 · Source: OSV.dev |
v2.4.1
minor
Dependencies (28)
+ 20 more |
|
v2.3.0-rc.2
pre
14 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2022-28923
GO-2023-1567
GHSA-qpm3-vr34-h8w8
Feb 16, 2023
Open redirect in github.com/caddyserver/caddy/v2 Due to improper request sanitization, a crafted URL can cause the static file handler to redirect to an attacker chosen URL, allowing for open redirect attacks. Fixed in
2.5.0-beta.1
References Updated Feb 04, 2026 · Source: OSV.dev
CVE-2022-29718
GHSA-2927-hv3p-f3vp
Jun 03, 2022
Open redirect in caddy
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
Caddy v2.4 was discovered to contain an open redirect vulnerability. A remote unauthenticated attacker may exploit this vulnerability to redirect users to arbitrary web URLs by tricking the victim users to click on crafted links. Fixed in
2.5.0
References
Updated Sep 10, 2026 · Source: OSV.dev |
v2.3.0-rc.2
pre
Dependencies (27)
+ 19 more |
|
v2.3.0-beta.1
pre
14 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2022-28923
GO-2023-1567
GHSA-qpm3-vr34-h8w8
Feb 16, 2023
Open redirect in github.com/caddyserver/caddy/v2 Due to improper request sanitization, a crafted URL can cause the static file handler to redirect to an attacker chosen URL, allowing for open redirect attacks. Fixed in
2.5.0-beta.1
References Updated Feb 04, 2026 · Source: OSV.dev
CVE-2022-29718
GHSA-2927-hv3p-f3vp
Jun 03, 2022
Open redirect in caddy
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
Caddy v2.4 was discovered to contain an open redirect vulnerability. A remote unauthenticated attacker may exploit this vulnerability to redirect users to arbitrary web URLs by tricking the victim users to click on crafted links. Fixed in
2.5.0
References
Updated Sep 10, 2026 · Source: OSV.dev |
v2.3.0-beta.1
pre
Dependencies (27)
+ 19 more |
|
v2.3.0-1
pre
14 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2022-28923
GO-2023-1567
GHSA-qpm3-vr34-h8w8
Feb 16, 2023
Open redirect in github.com/caddyserver/caddy/v2 Due to improper request sanitization, a crafted URL can cause the static file handler to redirect to an attacker chosen URL, allowing for open redirect attacks. Fixed in
2.5.0-beta.1
References Updated Feb 04, 2026 · Source: OSV.dev
CVE-2022-29718
GHSA-2927-hv3p-f3vp
Jun 03, 2022
Open redirect in caddy
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
Caddy v2.4 was discovered to contain an open redirect vulnerability. A remote unauthenticated attacker may exploit this vulnerability to redirect users to arbitrary web URLs by tricking the victim users to click on crafted links. Fixed in
2.5.0
References
Updated Sep 10, 2026 · Source: OSV.dev |
v2.3.0-1
pre
Dependencies (27)
+ 19 more |
|
v2.2.2
minor
14 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2022-28923
GO-2023-1567
GHSA-qpm3-vr34-h8w8
Feb 16, 2023
Open redirect in github.com/caddyserver/caddy/v2 Due to improper request sanitization, a crafted URL can cause the static file handler to redirect to an attacker chosen URL, allowing for open redirect attacks. Fixed in
2.5.0-beta.1
References Updated Feb 04, 2026 · Source: OSV.dev
CVE-2022-29718
GHSA-2927-hv3p-f3vp
Jun 03, 2022
Open redirect in caddy
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
Caddy v2.4 was discovered to contain an open redirect vulnerability. A remote unauthenticated attacker may exploit this vulnerability to redirect users to arbitrary web URLs by tricking the victim users to click on crafted links. Fixed in
2.5.0
References
Updated Sep 10, 2026 · Source: OSV.dev |
v2.2.2
minor
Dependencies (27)
+ 19 more |
|
v2.2.3
patch
14 CVEs
CVE-2026-55458
GHSA-8qx7-j2v2-x6q5
Oct 28, 2026
Caddy has an RFC 7230 §6.1 compliance issue / Hop-by-hop headers that leak through
Low
Network
Low
None
None
AI DisclosureThis 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. SummaryCaddy'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 The normal response path in DetailsIn
However, the 101 Switching Protocols check at line 1187 returns before this stripping code:
Inside
The Hop-by-Hop Headers That Leak ThroughDefined at
All 10 are stripped from normal responses. None are stripped from WebSocket upgrade responses. For HTTP/2 and HTTP/3 WebSocket connections (extended CONNECT with Normal (200): This is the only response code path in the reverse proxy that bypasses hop-by-hop header stripping. PoCCaddy config:
Script:
Curl:
Output:
Same upstream, same headers but on a 200 response.
Caddy strips
ImpactThis is a hop-by-hop header leakage vuln (I think CWE-444 fits closest?). The proxy fails to enforce the RFC 7230 §6.1 requirement that hop-by-hop headers must not be forwarded across proxy boundaries. Any Caddy deployment that proxies WebSocket connections, especially those using HTTP/2 or HTTP/3 (where the 101-to-200 conversion makes headers fully processable by browsers) has this issue. How an attack might look: A company serves app.example.com behind Caddy, with HTTP/2 enabled. The app uses WebSockets for real-time notifications (i.e. every page load opens one). The upstream app gets compromised (unpatched CMS plugin, leaked CI credential, dependency confusion). The attacker adds one line to the WebSocket handler: Set-Cookie: session=hijack; Path=/. Now every visitor to app.example.com gets the attacker's session cookie written into their browser. The app uses the session cookie as the sole authentication token. When a user reloads the page or navigates to another part of the app, their browser sends session=hijack along with the request. The attacker submits the same value from their own browser. They get logged in as that user. Caddy strips this header on normal HTTP responses. It strips hop-by-hop headers on the request side, basically everywhere except this path. Suggested FixI'll add my fix to the branch in this security advisory. Contact DetailsIf you find this find worth your time you can contact me under d.ramadani@ieee.org or +43 (677) 63 397 910. In case this is something that will go public I'd be happy to be mentioned under my real name, Dionis Ramadani. Thank you for taking the time, I hope this is something interesting for you. Fixed in
2.11.5
References Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-77281
GO-2026-6512
CVE-2026-92284
CVE-2026-92700
GHSA-j8px-rmrx-76h9
Oct 01, 2026
Vulnerabilities in handler/placeholder layer in github.com/caddyserver/caddy Rewrite placeholder re-expansion, unbounded body buffer DoS, and fileHidden case-sensitivity bypass in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-52846
GO-2026-5660
GHSA-vcc4-2c75-vc9v
Jul 24, 2026
Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Caddy: stripHTML template function bypass in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52844
GO-2026-5595
GHSA-qrp7-cvwr-j2c6
Jul 24, 2026
Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Caddy: Windows file server path authorization bypass via encoded backslash in github.com/caddyserver/caddy Fixed in
2.11.4
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-52845
GO-2026-5346
GHSA-f59h-q822-g45g
Jul 24, 2026
Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Caddy: FastCGI header normalization bypass in forward_auth copy_headers in github.com/caddyserver/caddy Fixed in
2.11.4
References Updated Jul 24, 2026 · Source: OSV.dev
GO-2026-5408
GHSA-gx7w-56w6-g48x
Jul 24, 2026
Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Caddy: Remote Admin Authorization Bypass on PKI Endpoints via Prefix-Based Path Matching in github.com/caddyserver/caddy Fixed in
2.11.3
Updated Jul 24, 2026 · Source: OSV.dev
CVE-2026-27586
GO-2026-4539
GHSA-hffm-g8v7-wrv7
Feb 26, 2026
Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Caddy mTLS authentication fails open in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27589
GO-2026-4537
GHSA-879p-475x-rqh2
Feb 26, 2026
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27588
GO-2026-4541
GHSA-x76f-jf84-rqj8
Feb 26, 2026
Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Caddy MatchHost becomes case-sensitive in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27585
GO-2026-4535
GHSA-4xrr-hq4w-6vf4
Feb 26, 2026
Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Improper sanitization of glob characters in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References
Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27590
GO-2026-4536
GHSA-5r3v-vc8m-m96g
Feb 26, 2026
Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Unicode case-folding causes incorrect split_path index in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2026-27587
GO-2026-4538
GHSA-g7pc-pc7g-h8jh
Feb 26, 2026
Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Caddy MatchPath %xx branch skips case normalization in github.com/caddyserver/caddy/v2 Fixed in
2.11.1
References Updated Feb 26, 2026 · Source: OSV.dev
CVE-2022-28923
GO-2023-1567
GHSA-qpm3-vr34-h8w8
Feb 16, 2023
Open redirect in github.com/caddyserver/caddy/v2 Due to improper request sanitization, a crafted URL can cause the static file handler to redirect to an attacker chosen URL, allowing for open redirect attacks. Fixed in
2.5.0-beta.1
References Updated Feb 04, 2026 · Source: OSV.dev
CVE-2022-29718
GHSA-2927-hv3p-f3vp
Jun 03, 2022
Open redirect in caddy
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
Caddy v2.4 was discovered to contain an open redirect vulnerability. A remote unauthenticated attacker may exploit this vulnerability to redirect users to arbitrary web URLs by tricking the victim users to click on crafted links. Fixed in
2.5.0
References
Updated Sep 10, 2026 · Source: OSV.dev |
v2.2.3
patch
Dependencies (27)
+ 19 more |