Summary
CVE-2026-77776 is a critical authorization bypass vulnerability (CWE-639: Authorization Bypass Through User-Controlled Key) affecting Headroom, an open-source LLM context/memory proxy distributed as the headroom-ai package. The proxy’s OpenAI-compatible request handler trusts the client-supplied x-headroom-user-id HTTP header as a caller’s identity without binding it to any authenticated session, allowing a remote, unauthenticated attacker to read or write another user’s stored LLM memory simply by naming their user identifier. The issue carries a CVSS v3.1 base score of 9.1 (Critical).
Technical details
- Root cause:
headroom/proxy/handlers/openai.py(and related memory-handling code inheadroom/proxy/memory_handler.pyandheadroom/memory/easy.py) reads thex-headroom-user-idheader directly and uses it as the identity key for the memory store, without verifying that the header value corresponds to the actual authenticated caller. - Trigger conditions: Any client able to reach the Headroom proxy’s OpenAI-compatible API endpoint can set an arbitrary
x-headroom-user-idvalue in the request header to impersonate another user’s memory namespace. - Compounding factor: The project’s reference Docker Compose configuration exposes the proxy to the network without requiring a proxy authentication token, making the flaw remotely exploitable by default in that deployment pattern.
- Attack vector: Network (AV:N), low attack complexity, no privileges or user interaction required.
- Impact: Confidentiality impact is high — an attacker can read another user’s persisted LLM conversation/memory data by supplying their user ID. The CVSS vector for this CVE (C:H/I:H/A:N) also reflects an integrity impact, consistent with the ability to write/poison another user’s stored memory, while availability is not affected.
Affected software
- Headroom (
headroom-aiPyPI package) versions 0 through 0.36.0 - Fixed in version 0.36.1 and later
Severity
- CVSS v3.1 Base Score: 9.1 (Critical)
- Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Mitigation and recommended actions
- Immediate: Upgrade Headroom to version 0.36.1 or later, which introduces a centralized
resolve_memory_identity()function that only honors thex-headroom-user-idheader for loopback or explicitly allowlisted callers; for all other (remote) requests, identity is bound to the proxy-token fingerprint instead of the client-supplied header. - If unable to patch immediately:
- Require and enforce a proxy authentication token (
HEADROOM_PROXY_TOKEN) for all deployments — do not run the reference Docker Compose configuration without setting this value. - Restrict network exposure of the Headroom proxy so it is reachable only from trusted/loopback hosts, and avoid publishing its ports directly to untrusted networks.
- Audit any existing deployments for evidence of cross-user memory access via manipulated
x-headroom-user-idheaders before patching.
- Require and enforce a proxy authentication token (

