Caddy is an extensible server platform that uses TLS by default. Prior to version 2.11.1, Caddy's HTTP `path` request matcher is intended to be case-insensitive, but when the match pattern contains percent-escape sequences (`%xx`) it compares against the request's escaped path without lowercasing. An attacker can bypass path-based routing and any access controls attached to that route by changing the casing of the request path. Version 2.11.1 contains a fix for the issue.
Metrics
Affected Vendors & Products
References
History
Wed, 25 Feb 2026 17:15:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| CPEs | cpe:2.3:a:caddyserver:caddy:*:*:*:*:*:*:*:* | |
| Metrics |
cvssV3_1
|
Wed, 25 Feb 2026 12:00:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Caddyserver
Caddyserver caddy |
|
| Vendors & Products |
Caddyserver
Caddyserver caddy |
Tue, 24 Feb 2026 17:00:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | Caddy is an extensible server platform that uses TLS by default. Prior to version 2.11.1, Caddy's HTTP `path` request matcher is intended to be case-insensitive, but when the match pattern contains percent-escape sequences (`%xx`) it compares against the request's escaped path without lowercasing. An attacker can bypass path-based routing and any access controls attached to that route by changing the casing of the request path. Version 2.11.1 contains a fix for the issue. | |
| Title | Caddy: MatchPath %xx (escaped-path) branch skips case normalization, enabling path-based route/auth bypass | |
| Weaknesses | CWE-178 | |
| References |
| |
| Metrics |
cvssV4_0
|
Status: PUBLISHED
Assigner: GitHub_M
Published: 2026-02-24T16:26:40.222Z
Updated: 2026-02-24T16:26:40.222Z
Reserved: 2026-02-20T17:40:28.450Z
Link: CVE-2026-27587
No data.
Status : Analyzed
Published: 2026-02-24T17:29:03.953
Modified: 2026-02-25T17:11:25.233
Link: CVE-2026-27587
No data.