CVE-2026-30852

Name
CVE-2026-30852
Description
Caddy is an extensible server platform that uses TLS by default. From version 2.7.5 to before version 2.11.2, the vars_regexp matcher in vars.go:337 double-expands user-controlled input through the Caddy replacer. When vars_regexp matches against a placeholder like {http.request.header.X-Input}, the header value gets resolved once (expected), then passed through repl.ReplaceAll() again (the bug). This means an attacker can put {env.DATABASE_URL} or {file./etc/passwd} in a request header and the server will evaluate it, leaking environment variables, file contents, and system info. This issue has been patched in version 2.11.2.
NVD Severity
unknown
Other trackers
Mailing lists
Exploits
Forges
GitHub (code, issues), Aports (code, issues)

References

Type URI
security-advisories@github.com https://github.com/caddyserver/caddy/pull/5408
security-advisories@github.com https://github.com/caddyserver/caddy/releases/tag/v2.11.2
security-advisories@github.com https://github.com/caddyserver/caddy/security/advisories/GHSA-m2w3-8f23-hxxf

Match rules

CPE URI Source package Min version Max version
cpe:2.3:a:caddyserver:caddy:*:*:*:*:*:*:*:* caddy >= 2.7.5 < 2.11.2

Vulnerable and fixed packages

Source package Branch Version Maintainer Status
caddy edge-community 2.11.2-r0 Michał Polański <michal@polanski.me> fixed
caddy edge-community 2.11.1-r0 Michał Polański <michal@polanski.me> possibly vulnerable
caddy edge-community 2.10.2-r4 Michał Polański <michal@polanski.me> possibly vulnerable
caddy edge-community 2.10.2-r3 Michał Polański <michal@polanski.me> possibly vulnerable
caddy edge-community 2.10.2-r2 Michał Polański <michal@polanski.me> possibly vulnerable
caddy edge-community 2.10.2-r1 Michał Polański <michal@polanski.me> possibly vulnerable
caddy edge-community 2.10.2-r0 Michał Polański <michal@polanski.me> possibly vulnerable
caddy edge-community 2.10.0-r3 Michał Polański <michal@polanski.me> possibly vulnerable
caddy edge-community 2.10.0-r2 Michał Polański <michal@polanski.me> possibly vulnerable
caddy edge-community 2.10.0-r1 Michał Polański <michal@polanski.me> possibly vulnerable
caddy edge-community 2.10.0-r0 Michał Polański <michal@polanski.me> possibly vulnerable
caddy edge-community 2.9.1-r4 Michał Polański <michal@polanski.me> possibly vulnerable
caddy edge-community 2.9.1-r3 Michał Polański <michal@polanski.me> possibly vulnerable
caddy edge-community 2.9.1-r2 Michał Polański <michal@polanski.me> possibly vulnerable
caddy edge-community 2.9.1-r1 Michał Polański <michal@polanski.me> possibly vulnerable
caddy edge-community 2.9.1-r0 Michał Polański <michal@polanski.me> possibly vulnerable
caddy edge-community 2.8.4-r3 Michał Polański <michal@polanski.me> possibly vulnerable
caddy edge-community 2.8.4-r2 Michał Polański <michal@polanski.me> possibly vulnerable
caddy 3.23-community 2.11.2-r0 Michał Polański <michal@polanski.me> fixed
caddy 3.23-community 2.10.2-r5 Michał Polański <michal@polanski.me> possibly vulnerable
caddy 3.23-community 2.10.2-r4 Michał Polański <michal@polanski.me> possibly vulnerable
caddy 3.23-community 2.10.2-r3 Michał Polański <michal@polanski.me> possibly vulnerable
caddy 3.23-community 2.10.2-r2 Michał Polański <michal@polanski.me> possibly vulnerable