🔍 CVE-2026-107685

0.0
CVSS Score
UNKNOWN
2026-10-23
2026-10-23 19:57
✅ 완료

🇰🇷 한글 설명

agentjido req_llm의 WebSocket 스트리밍 클라이언트에서 인증서 검증이 제대로 이루어지지 않는 취약점입니다. 클라이언트가 TLS 인증서를 검증하지 않고(verify_none) 연결하며, 애플리케이션이 이를 활성화하는 옵션도 제거되어 있습니다. 이로 인해 OpenAI WebSocket 세션의 인증 토큰이 노출될 수 있습니다.

💡 쉬운 설명

이 프로그램은 AI 서버와 통신할 때 상대방의 신분증(인증서)을 확인하지 않습니다. 중간에서 가로채는 공격자가 있으면 API 키와 같은 인증 정보를 훔치거나 대화 내용을 변조할 수 있습니다.

🇺🇸 원문 (English)

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.

📍 영향받는 시스템

agentjido req_llm 1.9.0 이상 1.29.0 미만 버전의 WebSocket 기반 OpenAI Responses, Realtime, Codex 경로

⚔️ 공격 벡터

네트워크 경로상의 공격자(MITM)가 신뢰되지 않는 TLS 인증서를 제시하여 WebSocket 세션을 가로채고 인증 토큰을 탈취 및 변조

🛡️ 대응 방법

req_llm을 1.29.0 이상으로 업그레이드하고, 업그레이드가 어려우면 WebSocket 경로 사용을 중단하고 HTTP 스트리밍을 사용

🔧 검증 코드

출력된 req_llm 버전이 1.9.0 이상 1.29.0 미만이면 취약하며, 1.29.0 이상이면 패치된 버전입니다.

Shell / Script
mix deps | grep req_llm

💻 영향받는 소프트웨어

Codex