Hop-by-hop abuse to malform header mutator
Key facts
- Attack vector
- —
- Privileges required
- —
- User interaction
- —
- Attack complexity
- —
- Impact type
- —
- Confidentiality · integrity · availability
- —
- Fix status
- Fixed
No CVSS vector from any source. Fix status from GitHub.
Summary
### Impact Downstream services relying on the presence of headers set by the `header` mutator could be exploited. A client can drop the header set by the `header` mutator by including that header's name in the `Connection` header. Example minimal config: ```yaml - id: 'example' upstream: url: 'https://example.com' match: url: 'http://127.0.0.1:4455/' methods: - GET authenticators: - handler: anonymous authorizer: handler: allow mutators: - handler: header config: headers: X-Subject: {{ .Subject }} ``` ``` curl -H "Connection: close,x-subject" http://127.0.0.1:4455/ ``` The `X-Subject` header will not arrive at the downstream server. It is completely dropped. In case the downstream server handles such a request in an unexpected way, an attacker can exploit this, assuming they know or guess the internal header name. ### Patches c5cc7f736dc84185034be4356057d1c7a656d797 ### Workarounds The downstream server should handle the case that an expected header is not set by responding with an appropriate error. ### References See background info in https://github.com/golang/go/issues/50580
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| — | github.com/ory/oathkeeper (Go) | before 0.40.3 | 0.40.3 | Patch available | GHSA-w9mr-28mw-j8hg |
- github.com/ory/oathkeeper (Go) Vendor— Affected before 0.40.3 Fixed in 0.40.3 Patch available GHSA-w9mr-28mw-j8hg
Remediation
- Fix · GHSA-w9mr-28mw-j8hg github.com/ory/oathkeeper (Go) Fixed in 0.40.3 Advisory →
Timeline
- 2026-10-03 Threatist record created from GHSA-w9mr-28mw-j8hg
References
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences