Vulnerabilidad en Headroom Labs (CVE-2026-77775)
Gravedad CVSS v4.0:
ALTA
Tipo:
CWE-918
Falsificación de solicitud en servidor (SSRF)
Fecha de publicación:
21/08/2026
Última modificación:
15/10/2026
Descripción
El proxy LLM de Headroom permite a un cliente elegir el destino upstream con la cabecera de solicitud x-headroom-base-url. _resolve_openai_upstream_base en headroom/proxy/handlers/openai.py acepta el valor de la cabecera, solo requiere que se analice con un esquema HTTP o HTTPS y un nombre de host, y lo devuelve para su uso como base upstream; _select_passthrough_base_url en headroom/providers/proxy_routes.py lee la misma cabecera para las rutas de passthrough. Ninguna comprobación rechaza destinos loopback, link-local o RFC 1918, y debido a que el componente es un proxy, la respuesta upstream se devuelve al llamador, por lo que la solicitud llega a servicios internos y direcciones de metadatos de la nube y sus respuestas son divulgadas. La cabecera de autorización que acompaña a la solicitud se reenvía sin cambios al host designado por el llamador. El script de consola de pip enlaza 127.0.0.1 por defecto, pero el docker-compose.yml de referencia se distribuye con --host 0.0.0.0 con puertos publicados y sin HEADROOM_PROXY_TOKEN requerido, de lo cual el propio servidor advierte al inicio, por lo que una implementación que siga el compose distribuido expone las rutas del plano de datos afectadas a la red sin autenticación.
Impacto
Puntuación base 4.0
7.70
Gravedad 4.0
ALTA
Puntuación base 3.x
8.60
Gravedad 3.x
ALTA
Referencias a soluciones, herramientas e información
- https://github.com/headroomlabs-ai/headroom
- https://github.com/headroomlabs-ai/headroom/blob/v0.29.0/headroom/proxy/handlers/openai.py
- https://github.com/headroomlabs-ai/headroom/blob/v0.36.1/headroom/proxy/upstream_guard.py
- https://github.com/headroomlabs-ai/headroom/pull/2207
- https://www.vulncheck.com/advisories/headroom-proxy-sends-upstream-requests-to-a-client-supplied-base-url-without-address-validation


