High, CVSS 8.8PyPIAmendedPublished
Headroom vulnerable to Cross-Site WebSocket Hijacking (CSWSH)
CVE-2026-71416 · GHSA-h46j-26q3-rggf
- Affected
- PyPI headroom-ai < 0.35.0
- Fixed in
- 0.35.0· Vendor fix available
- Issue
- 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 OPENAIAPIKEY environment variable. Details The Headroom server defines a WebSocket handler at ws://<headroomhost:8787/v1/responses in headroom/providers/proxyroutes.py: In the handleopenairesponsesws() method of the OpenAIHandlerMixin class, the Origin header of the WebSocket client handshake is not checked or verified before calling websocket.accept(), which grants any WebSocket client (including malicious clients) access to the server: The malicious WebSocket client does not need to provide authentication headers or API…
Recommended action: Upgrade to 0.35.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.