Authentication Bypass in Headroom LLM Proxy via Header Spoofing
The Headroom LLM proxy improperly derives memory ownership from the unauthenticated 'x-headroom-user-id' request header, allowing attackers to perform unauthorized read and write operations on arbitrary user LLM memory.
CVE search metadata
CVE search record: CVE-2026-77776. Severity: critical. CVSS: 9.1. KEV: no. Product: LLM proxy. Brief: Authentication Bypass in Headroom LLM Proxy via Header Spoofing. Brief link: https://feed.craftedsignal.io/briefs/2026-08-headroom-identity-spoofing/
What's new
- 1. added detection rule: Detect CVE-2026-77775 Exploitation - SSRF via x-headroom-base-url Header Aug 21, 13:24 via nvd
CVE-2026-77776 is an authentication and authorization vulnerability in the Headroom LLM proxy. The application derives memory ownership directly from the 'x-headroom-user-id' HTTP header in 'headroom/proxy/handlers/openai.py' without verifying the caller's identity. This allows an attacker to manipulate the header to impersonate any user, resulting in unauthorized access to sensitive stored LLM memory.
The risk is significantly amplified by the provided 'docker-compose.yml' file, which defaults to binding the service to '0.0.0.0' and fails to enforce the 'HEADROOM_PROXY_TOKEN' environment variable. When deployed using this configuration, the service exposes its data-plane endpoints to the network, enabling unauthenticated attackers to perform identity spoofing remotely. Defenders must ensure that the proxy is bound to local interfaces only or that the 'HEADROOM_PROXY_TOKEN' is strictly enforced for all inbound requests.
Impact
Successful exploitation allows unauthenticated attackers to read or write the LLM memory of any user registered within the Headroom instance. This could lead to the exposure of proprietary data, sensitive user conversations, or the injection of malicious context into future LLM interactions, compromising the integrity of all stored assistant memory.
Recommendation
- Immediately update the 'docker-compose.yml' configuration to bind the proxy to '127.0.0.1' and verify that 'HEADROOM_PROXY_TOKEN' is enabled and non-default.
- Implement network-level access controls to restrict access to the LLM proxy port to authorized internal IP addresses only.
- Patch the Headroom LLM proxy to the version where the 'resolve_memory_identity' seam is introduced in 'headroom/proxy/identity.py'.
- Audit logs for suspicious 'x-headroom-user-id' header patterns that deviate from expected user identification formats.
Immediate actions
Restrict network access to the Headroom LLM proxy port
Mitigations
Bind service to 127.0.0.1 and enforce HEADROOM_PROXY_TOKEN
CVE-2026-77776
Detection coverage 2
Detect CVE-2026-77776 Exploitation - Unauthorized x-headroom-user-id Usage
criticalDetects requests to the LLM proxy where the x-headroom-user-id header is present from external, non-loopback IP addresses.
Detect CVE-2026-77775 Exploitation - SSRF via x-headroom-base-url Header
highDetects HTTP requests containing the x-headroom-base-url header pointing to private or reserved IP ranges indicating potential SSRF exploitation
Detection queries are available on the platform. Get full rules →