Headroom Proxy Sends Upstream Requests to a Client-Supplied Base URL Without Address Validation
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- —
- Confidentiality · integrity · availability
- None · None · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA.
Summary
Headroom's LLM proxy lets a client choose the upstream destination with the x-headroom-base-url request header. _resolve_openai_upstream_base in headroom/proxy/handlers/openai.py accepts the header value, requires only that it parse with an http or https scheme and a hostname, and returns it for use as the upstream base; _select_passthrough_base_url in headroom/providers/proxy_routes.py reads the same header for the passthrough routes. No check rejects loopback, link-local, or RFC 1918 destinations, and because the component is a proxy the upstream response is returned to the caller, so the request reaches internal services and cloud metadata addresses and their responses are disclosed. The Authorization header accompanying the request is forwarded unchanged to the caller-designated host. The pip console script binds 127.0.0.1 by default, but the reference docker-compose.yml ships --host 0.0.0.0 with published ports and no required HEADROOM_PROXY_TOKEN, which the server itself warns about at startup, so a deployment following the shipped compose exposes the affected data-plane routes to the network without authentication.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| Headroom Labs | Headroom | before 0.36.1 | 0.36.1 | Patch available | CNA |
- Headroom VendorHeadroom Labs Affected before 0.36.1 Fixed in 0.36.1 Patch available CNA
Remediation
- Fix · CNA Headroom (Headroom Labs) Fixed in 0.36.1
Fixed in the same release
Records fixed by the same vendor advisory or release, as the CNA lists them.
- Release ·
Headroom 0.36.1
2 records Highest priority Priority MEDIUM 2 MEDIUM
Other records, highest priority first
- TI-2026-54168 Headroom Proxy Treats the Client-Supplied x-headroom-user-id Header as an Authenticated IdentityPriority MEDIUM 49
Timeline
- 2026-10-02 Threatist record created from CVE-2026-77775
- 2026-10-03 Alias added: GHSA-4j5r-9p93-j2px
References
More Headroom Labs vulnerabilities
- TI-2026-54168 Headroom Proxy Treats the Client-Supplied x-headroom-user-id Header as an Authenticated Identity CVSS 4.0CRITICAL 9.3
Sources
- CVE-2026-77775 · CVE Program
- CVE-2026-77775 · NVD
- FIRST EPSS
- GHSA-4j5r-9p93-j2px · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences