Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAttacker hosts cross-origin malicious page
-
DeliveryVictim with proxy network access visits page
-
ExploitBrowser initiates WebSocket upgrade to Headroom proxy
-
ExecutionProxy forwards without Origin validation
-
PersistAttacker script submits arbitrary LLM prompts via victim's API key
-
ImpactAPI credits consumed or sensitive LLM data exfiltrated
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication mechanism validation
MITRE ATT&CK
2 techniques across 2 tactics: Defense Evasion, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Three conditions must be met simultaneously: (1) the Headroom WebSocket proxy is reachable from the victim's browser-either because it is bound to localhost in a developer's environment, hosted on an intranet, or (worst case) exposed to the internet; (2) the OPENAI_API_KEY environment variable is configured in the Headroom process; and (3) the victim loads a malicious or compromised webpage in a browser that has network access to the proxy endpoint, or a headless browser such as lightpanda is used in an automated pipeline. User interaction is required in the traditional browser case (UI:R), but headless-browser pipelines that automatically load external content could reduce this barrier. Exploitation is bounded by network topology: deployments accessible only on localhost or a hardened private network cannot be reached by external attackers without additional compromise. |
| Impact | The CVSS 8.8 vector (AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H) accurately reflects the attack profile: network-reachable, low complexity, no attacker credentials required, but gated on the victim's browser having network access to the proxy endpoint. No EPSS score is provided in the input data, and KEV status is absent-no active exploitation confirmed by any authoritative source. The realistic blast radius is constrained by deployment topology: Headroom is typically a developer or team-internal tool, meaning exploitation requires either an insider threat, a malicious script on an intranet page, or a phishing lure that reaches a developer whose browser touches the proxy. Even a mid-sized engineering organization in bytom running Headroom behind a VPN faces meaningful but not critical external exposure, since internet-routed attackers cannot reach a LAN-only proxy directly. The most concrete risk is API key exhaustion and financial damage to the OpenAI account; secondary risk is prompt injection enabling data exfiltration through LLM response channels. CVSS C:H/I:H/A:H is defensible but slightly generous given S:U scope. |
| Exploit ScenarioDerived | An attacker crafts a webpage containing JavaScript that opens a WebSocket connection to the target's Headroom proxy address (e.g., ws://headroom.internal:4000). When a developer whose browser has intranet access to the proxy visits the page, the browser completes the WebSocket handshake without any Origin check by the server. The attacker's script then streams arbitrary LLM requests through the proxy, billing the operator's OpenAI account and potentially extracting LLM-generated responses containing sensitive organizational context. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 11, 2026
Cross-origin WebSocket hijacking in Headroom's proxy layer (prior to v0.35.0) allows an unauthenticated attacker-controlled webpage to issue arbitrary LLM requests through the victim's Headroom instance without authentication. Because the WebSocket server forwards requests to the upstream LLM provider without validating the Origin header, any browser with network access to the proxy-standard or headless-can be weaponized as a relay. The primary concrete impact is unauthorized consumption of the stored OpenAI API key and potential exposure of LLM response content; no public exploit code or CISA KEV listing has been identified at time of analysis.
RemediationAI
Upgrade Headroom to version 0.35.0 or later, which introduces Origin header validation on the WebSocket server. The fix is confirmed by the GitHub Security Advisory GHSA-h46j-26q3-rggf (https://github.com/headroomlabs-ai/headroom/security/advisories/GHSA-h46j-26q3-rggf) and the v0.35.0 release at https://github.com/headroomlabs-ai/headroom/releases/tag/v0.35.0. As a compensating control prior to patching, place a reverse proxy such as nginx in front of Headroom that enforces an Origin allowlist on WebSocket upgrade requests and rejects all other origins-note this adds a dependency on correct allowlist maintenance. Additionally, restrict network access to the Headroom endpoint to localhost or a trusted internal CIDR, eliminating browser-based cross-origin attack surface entirely. After patching, rotate the OPENAI_API_KEY if the instance was network-accessible during the vulnerable period.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in pypi, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Headroom (CPE: cpe:2.3:a:headroomlabs-ai:headroom:*:*:*:*:*:*:*:*) is an LLM proxy that compresses context before forwarding requests to providers such as OpenAI. Its WebSocket server component omits Origin header validation-a server-side check required by RFC 6455 best practices to prevent cross-site WebSocket hijacking. Browsers do not apply the same-origin policy to WebSocket upgrade requests; they will willingly open a WebSocket connection from any origin unless the server explicitly rejects disallowed origins. CWE-287 (Improper Authentication) is the assigned root cause class, though CWE-346 (Origin Validation Error) is a more precise fit. The stored OPENAI_API_KEY environment variable acts as the shared credential that all forwarded requests implicitly inherit, meaning any WebSocket connection the proxy accepts is automatically authorized with the operator's API key.
Know when Headroom gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Network-reachable cross-origin WebSocket attack; no attacker credentials needed; victim browser access required (UI:R); API key abuse enables full confidentiality, integrity, and availability impact on the LLM account.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Headroom compresses data before the data reaches a large language model. Prior to version 0.35.0, the Headroom WebSocket server does not validate the Origin header of incoming client WebSocket requests before forwarding the request to the upstream server, allowing malicious WebSocket clients to perform arbitrary LLM requests without authentication. This can be exploited by a malicious WebSocket client executed in a traditional or headless browser such as lightpanda, if the browser has access to the Headroom proxy and the OpenAI API key is stored in the OPENAI_API_KEY environment variable. Version 0.35.0 fixes the issue.
Blast Radius
ecosystem impact- 1 pypi packages depend on headroom-ai (1 direct, 0 indirect)
Ecosystem-wide dependent count for version 0.35.0.
Technical POC Analysis
CWE-287 (Improper Authentication), with the advisory also tagging CWE-1385 (Missing Origin Validation in WebSockets).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Latest POC
1 PoC candidate from github (unverified)
Sign in to open the public PoC links collected for this CVE.
Executive ViewAI
Headroom proxy (versions prior to v0.35.0) contains an authentication bypass in its WebSocket layer that allows unauthenticated remote attackers to hijack connections and steal stored OpenAI API keys. While no public exploit has been identified at time of analysis, affected organizations face immediate financial risk from unauthorized API consumption and potential exposure of sensitive LLM-generated content.
No vendor-released patch identified at time of analysis. Deploy these interim mitigations immediately: (1) restrict network access to Headroom proxy via firewall to internal-only traffic; (2) rotate and revoke all OpenAI API keys to prevent ongoing unauthorized consumption; (3) implement real-time alerting on anomalous API usage patterns; (4) deploy Origin header validation rules at reverse-proxy or WAF layer if technically feasible; (5) segregate Headroom infrastructure from untrusted network segments.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Cross-user memory disclosure and tampering in Headroom's LLM proxy (versions before 0.36.1) lets a caller read or overwr
Server-side request forgery in Headroom LLM proxy (versions before 0.36.1) allows unauthenticated remote attackers to re
EUVD-2026-76105
GHSA-h46j-26q3-rggf
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB