id: GO-ID-PENDING
modules:
- module: github.com/caddyserver/caddy
vulnerable_at: 1.0.5
- module: github.com/caddyserver/caddy/v2
versions:
- introduced: 2.10.0
- fixed: 2.11.2
vulnerable_at: 2.11.1
summary: |-
Caddy forward_auth copy_headers Does Not Strip Client-Supplied Headers, Allowing
Identity Injection and Privilege Escalation in github.com/caddyserver/caddy
cves:
- CVE-2026-30851
ghsas:
- GHSA-7r4p-vjf4-gxv4
references:
- advisory: https://github.com/advisories/GHSA-7r4p-vjf4-gxv4
- advisory: https://github.com/caddyserver/caddy/security/advisories/GHSA-7r4p-vjf4-gxv4
- fix: https://github.com/caddyserver/caddy/pull/6608
- fix: https://github.com/caddyserver/caddy/pull/7545
- report: https://github.com/caddyserver/caddy/issues/6610
source:
id: GHSA-7r4p-vjf4-gxv4
created: 2026-03-07T00:01:50.671225642Z
review_status: UNREVIEWED
Advisory GHSA-7r4p-vjf4-gxv4 references a vulnerability in the following Go modules:
Description:
Summary
Caddy's
forward_authdirective withcopy_headersgenerates conditional header-set operations that only fire when the upstream auth service includes the named header in its response. No delete or remove operation is generated for the original client-supplied request header with the same name.When an auth service returns
200 OKwithout one of the configuredcopy_headersheaders, the client-supplied header passes through unchanged to the backend. Any requester holding a valid authentication token can inject arbitrary values for trusted identity headers, resulting in privileg...References:
copy_headersdoes not strip client-supplied identity headers (Fixes GHSA-7r4p-vjf4-gxv4) caddyserver/caddy#7545Cross references:
See doc/quickstart.md for instructions on how to triage this report.