Skip to main content

Headroom CVE-2026-71416

| EUVDEUVD-2026-76105 HIGH
Improper Authentication (CWE-287)
2026-09-11 GitHub_M GHSA-h46j-26q3-rggf
8.8
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Attacker hosts cross-origin malicious page
  2. Delivery
    Victim with proxy network access visits page
  3. Exploit
    Browser initiates WebSocket upgrade to Headroom proxy
  4. Execution
    Proxy forwards without Origin validation
  5. Persist
    Attacker script submits arbitrary LLM prompts via victim's API key
  6. Impact
    API 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
1 PoC candidate (unverified) Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Headroom < 0.35.0

Affected Packages

pypi headroom-ai fix: 0.35.0
euvd headroom fix: 0.35.0

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

Vendor (GitHub_M) PRIMARY 8.8 HIGH
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
vuln.today AI 8.8 HIGH

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.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Sep 11, 2026 - 15:02 EUVD
CVE Published
Sep 11, 2026 - 13:34 cve.org
HIGH 8.8

DescriptionCVE.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
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.2%
Top 93% exploitable
Prevalence
Low
niche AI LLM proxy tool, limited enterprise footprint
Threat Intel
1
1 source
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

64
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy