Descripción
Vulnerabilidad de validación incorrecta de certificados en el cliente de streaming WebSocket de agentjido req_llm que permite a un atacante ubicado en la ruta de comunicación (on-path) leer y modificar sesiones WebSocket de OpenAI, incluido el token bearer de autorización, mediante un certificado TLS en el que el cliente no confía. ReqLLM.Streaming.WebSocketSession.Client.start/3 en lib/req_llm/streaming/web_socket_session/client.ex inicia WebSockex sin opciones de TLS, y WebSockex usa por defecto insecure: true, que se conecta con verify: :verify_none. Además, la lista de opciones permitidas descarta cualquier cacerts u ssl_options proporcionado por quien realiza la llamada, por lo que una aplicación no puede activar la verificación. Las rutas WebSocket de OpenAI Responses, Realtime y Codex llegan a este cliente y envían la clave de API o el token de acceso OAuth en el encabezado authorization. El streaming HTTP mediante Finch y la sesión dúplex HTTP/2 mediante Mint sí verifican los certificados y no se ven afectados. Este problema afecta a req_llm: desde la versión 1.9.0 y antes de la 1.29.0.
Qué hacer
Revisa si usas el producto afectado y en qué versión, y aplica la actualización o la mitigación que indique el aviso del fabricante. CISA no ha confirmado que se esté explotando; si eso cambia, esta ficha pasa a «explotada» y te avisamos en el boletín.
Versiones afectadas
- req_llm Afectadas: 1.9.0 y anteriores a 1.29.0
- req_llm Afectadas: a389d718640ceb2d541a8f540ab954cbf5ef8313 y anteriores a c7264fc0217fbacfb5562234ff790b8e4462de76
Según el registro de la vulnerabilidad en CVE.org, tal como lo publicó el fabricante. Confirma tu versión exacta en el aviso del fabricante.
Referencias
- Aviso del fabricantegithub.com/agentjido/req_llm/security/advisories/GHSA-6vww-5m28-f26v
- Referencia en cna.erlef.orgcna.erlef.org/cves/CVE-2026-107685.html
- Referencia en osv.devosv.dev/vulnerability/EEF-CVE-2026-107685
- Referencia en github.comgithub.com/agentjido/req_llm/commit/a389d718640ceb2d541a8f540ab954cbf…
- Parchegithub.com/agentjido/req_llm/commit/c7264fc0217fbacfb5562234ff790b8e4…
Ver el texto original en inglés (CVE.org)
WebSocket sessions do not verify TLS certificates, exposing API keys and OAuth tokens to on-path attackers
Improper Certificate Validation vulnerability in the WebSocket streaming client in agentjido req_llm allows an on-path attacker to read and modify OpenAI WebSocket sessions, including the authorization bearer token, via a TLS certificate the client does not trust. ReqLLM.Streaming.WebSocketSession.Client.start/3 in lib/req_llm/streaming/web_socket_session/client.ex starts WebSockex without TLS options, and WebSockex defaults to insecure: true, which connects with verify: :verify_none. The option allowlist also drops any caller-supplied cacerts or ssl_options, so an application cannot turn verification on. The OpenAI Responses, Realtime, and Codex WebSocket paths reach this client and send the API key or OAuth access token in the authorization header. HTTP streaming through Finch and the HTTP/2 duplex session through Mint verify certificates and are not affected. This issue affects req_llm: from 1.9.0 before 1.29.0.