Headroom Proxy Treats the Client-Supplied x-headroom-user-id Header as an Authenticated Identity
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- High · High · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-639.
Summary
Headroom's LLM proxy derives the memory owner from the x-headroom-user-id request header. The header is read directly at several points in headroom/proxy/handlers/openai.py, including the chat completion and websocket paths, and nothing binds the value to the caller. A client can therefore name another user's identifier and read or write that user's stored LLM memory. The fix introduces a single resolve_memory_identity seam in headroom/proxy/identity.py that honors the header only for loopback or allowlisted callers and otherwise binds the identity to the proxy-token fingerprint or the operating system user. 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
- Total
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-54167 Headroom Proxy Sends Upstream Requests to a Client-Supplied Base URL Without Address ValidationPriority MEDIUM 40
Timeline
- 2026-10-02 Threatist record created from CVE-2026-77776
- 2026-10-03 Alias added: GHSA-5vg3-c628-vf56
References
More Headroom Labs vulnerabilities
- TI-2026-54167 Headroom Proxy Sends Upstream Requests to a Client-Supplied Base URL Without Address Validation CVSS 4.0HIGH 7.7
Sources
- CVE-2026-77776 · CVE Program
- CVE-2026-77776 · NVD
- FIRST EPSS
- GHSA-5vg3-c628-vf56 · 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