Sceawere

Vulnerability Detail

CVE-2026-77775UPDATED Verified Sceawere Triage Sources: NVD / CISA KEV

Headroom LLM Proxy SSRF Vulnerability

Vulnerability Metadata

Severity
High
Score / CVSS
8.6
Creation Date
4h ago
Vendor
Headroom Labs
Product
Headroom
Attack Type
Server-Side Request Forgery (SSRF)
Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
Attack Complexity
LOW

Narrative and Response

Description

Headroom's LLM proxy lets a client choose the upstream destination with the x-headroom-base-url request header. _resolve_openai_upstream_base in headroom/proxy/handlers/openai.py accepts the header value, requires only that it parse with an http or https scheme and a hostname, and returns it for use as the upstream base; _select_passthrough_base_url in headroom/providers/proxy_routes.py reads the same header for the passthrough routes. No check rejects loopback, link-local, or RFC 1918 destinations, and because the component is a proxy the upstream response is returned to the caller, so the request reaches internal services and cloud metadata addresses and their responses are disclosed. The Authorization header accompanying the request is forwarded unchanged to the caller-designated host. The pip console script binds 127.0.0.1 by default, but the reference docker-compose.yml ships --host 0.0.0.0 with published ports and no required HEADROOM_PROXY_TOKEN, which the server itself warns about at startup, so a deployment following the shipped compose exposes the affected data-plane routes to the network without authentication.

Executive Summary

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Executive Summary Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

Technical Details

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Detailed Technical Analysis Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

Mitigations

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Remediation & Mitigations Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

References

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Intelligence References Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

Additional Metadata

{
  "score": "8.6",
  "pubDate": "2026-08-21T12:16:36.813Z",
  "pubdate": "2026-08-21T12:16:36.813Z",
  "executiveSummary": "A Server-Side Request Forgery (SSRF) vulnerability exists in Headroom's LLM proxy, affecting proxy routes and upstream resolution mechanisms.\nThe vulnerability allows an unauthenticated remote attacker to force the proxy to send HTTP requests to arbitrary destinations, including loopback interfaces, link-local addresses, RFC 1918 private networks, and cloud metadata services.\nThe root cause is the lack of validation on the x-headroom-base-url request header, which dictates the upstream destination without restricting internal or sensitive IP ranges.\nBecause the proxy forwards the client's Authorization header unchanged to the caller-designated host and returns the upstream response, attackers can exfiltrate internal data and abuse local credentials.\nThe risk is significantly elevated when deployed using the reference docker-compose.yml configuration with --host 0.0.0.0 and published ports without a required HEADROOM_PROXY_TOKEN, exposing data-plane routes to the network without authentication.\nSuccessful exploitation requires network access to the exposed proxy instance and the ability to craft HTTP requests containing malicious x-headroom-base-url header values.",
  "technicalDetails": "The vulnerability resides in the request handling logic of Headroom's LLM proxy, specifically within _resolve_openai_upstream_base located in headroom/proxy/handlers/openai.py and _select_passthrough_base_url located in headroom/providers/proxy_routes.py.\nThese functions read the x-headroom-base-url request header provided by the client, enforcing only that the supplied value parses successfully with an http or https scheme and contains a valid hostname before returning it as the upstream base URL.\nNo validation checks are performed to reject loopback addresses (such as 127.0.0.1 or [::1]), link-local addresses, or RFC 1918 private network spaces.\nWhen a client makes a request through the proxy, the component forwards the request to the attacker-controlled upstream destination specified in the x-headroom-base-url header.\nAdditionally, any Authorization header accompanying the original client request is forwarded unchanged to the designated host, enabling credential relaying and unauthorized access to internal services.\nBecause the proxy returns the upstream response directly to the caller, attackers can successfully query internal services, internal APIs, and cloud metadata endpoints, resulting in the disclosure of sensitive data.\nNetwork exposure is exacerbated by the reference docker-compose.yml configuration, which ships with the server bound to 0.0.0.0 via --host 0.0.0.0 with published ports and omits the requirement for a HEADROOM_PROXY_TOKEN.\nConsequently, deployments utilizing this reference configuration expose affected data-plane routes to the wider network without requiring authentication, allowing unauthenticated remote attackers to trigger the SSRF attack flow."
}
CVE-2026-77775: Headroom LLM Proxy SSRF Vulnerability (HIGH Severity, CVSS: 8.6) - Sceawere