Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain on-path network position
-
DeliveryPresent untrusted TLS certificate to wss client
-
ExploitClient skips verification, handshake succeeds
-
ExecutionCapture authorization bearer token
-
ImpactRead and modify WebSocket session data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V12 - Secure Communication Certificate validation
|
| Exploitation Conditions | Requires two things together: (1) the application must use one of the affected OpenAI WebSocket paths - Responses in WebSocket mode (provider_options: [openai_stream_transport: :websocket]), Realtime sessions (ReqLLM.OpenAI.Realtime), or the Codex WebSocket path - on req_llm 1.9.0 through 1.28.0; and (2) the attacker must hold an on-path network position (compromised network, hostile Wi-Fi, or DNS/BGP interference) to substitute a certificate the client would otherwise reject. Limiting factors: default HTTP streaming via Finch and the HTTP/2 duplex session via Mint verify certificates and are NOT affected, so applications not opting into the WebSocket transports are unexposed; and because the allowlist dropped TLS options, affected versions could not be configured to turn verification on, meaning the only reliable mitigation is upgrading to 1.29.0 (or avoiding the affected WebSocket paths). |
| Impact | This is a genuine high-priority issue, corroborated across multiple independent signals rather than a high-CVSS-but-low-real-risk case. The CWE-295 improper certificate validation flaw is confirmed by the vendor GHSA advisory (GHSA-6vww-5m28-f26v), the Erlang Ecosystem Foundation CNA (reporter EEF), and OSV, and a vendor patch is available (fixed in 1.29.0). The input CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H) correctly captures the shape: network-reachable, no authentication, but with an attack requirement (AT:P) - the attacker must hold an on-path position (compromised network, hostile Wi-Fi, DNS/BGP interference). That AT:P requirement is the single biggest real-world limiter and should be weighed against the raw 9.1: this is not mass-scannable remote code execution but a man-in-the-middle condition. The vuln.today decision label is act_now, which - combined with confirmed token/secret exposure (API keys, OAuth access tokens) and the ability to modify model output and tool calls - justifies prompt remediation. Contrasting signals: no EPSS score is provided and the CVE is NOT in CISA KEV, and no public exploit reference appears in the input, so there is no evidence of active exploitation or widespread automated attacks; the urgency here derives from impact severity and the act_now label, not from observed in-the-wild activity. The confidentiality AND integrity impact (read and alter the session) makes this materially worse than a pure eavesdropping bug. |
| Exploit ScenarioDerived | A user of an application built on req_llm (1.9.0-1.28.0) using the OpenAI Responses, Realtime, or Codex WebSocket transport connects over a network an attacker controls or can intercept (e.g., hostile Wi-Fi or DNS/BGP manipulation). Because the WebSocket client connects with verify: :verify_none, the attacker terminates the wss:// connection with an untrusted certificate the handshake nonetheless accepts, then reads the authorization: Bearer token and relays/alters the session. No public exploit code is identified at time of analysis, but reproduction is straightforward per the advisory (point the client at a self-signed TLS WebSocket endpoint). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 23, 2026
ReqLLM 1.9.0 through 1.28.0 accepts untrusted TLS certificates on its OpenAI WebSocket paths, allowing an unauthenticated on-path attacker to read or modify sessions and capture bearer tokens. Exposure is limited to applications that opt into OpenAI Responses WebSocket mode, Realtime sessions, or the Codex WebSocket path; default HTTP streaming through Finch and the HTTP/2 duplex session through Mint verify certificates and are unaffected. The vendor has released 1.29.0, the decision signal is act_now, and no public exploit identified at time of analysis.
RemediationAI
Vendor-released patch: upgrade to ReqLLM 1.29.0 or later, as directed by the GHSA advisory (https://github.com/agentjido/req_llm/security/advisories/GHSA-6vww-5m28-f26v). The decision label is act_now, so prioritize this upgrade. Version 1.29.0 enables peer verification for secure WebSocket connections, uses the system certificate authorities by default, verifies the certificate hostname, fails closed if the system trust store is unavailable, and still supports an explicit custom certificate authority or custom SSL options; it applies the secure settings to wss:// URLs and WebSocket URLs built from an https:// base URL. The primary fix is commit c7264fc0217fbacfb5562234ff790b8e4462de76, and the https:// base URL follow-up is in PR #1140 and commit edfe11085710e67134d66e158f94aabfdcb41c1d. If an upgrade is not possible, the vendor's workaround is to avoid the affected OpenAI Responses, Realtime, and Codex WebSocket paths; HTTP streaming through Finch and the Mint HTTP/2 duplex session are not affected. In affected versions the allowlist dropped caller-supplied cacerts and ssl_options, so verification cannot be turned on by configuration; updating is the only complete fix.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-295, Improper Certificate Validation. In lib/req_llm/streaming/web_socket_session/client.ex, ReqLLM.Streaming.WebSocketSession.Client.start/3 calls WebSockex.start/4 without :insecure, :cacerts, or :ssl_options. WebSockex 0.5.1 defaults to insecure: true, which becomes :ssl.connect(..., verify: :verify_none). ReqLLM's option allowlist also dropped caller-supplied cacerts and ssl_options, so applications could not re-enable verification. This affects WebSocket URLs used by OpenAI Responses in WebSocket mode, OpenAI Realtime, and Codex; those paths send an OpenAI API key or OAuth access token in the authorization header. Finch-based HTTP streaming and Mint-based HTTP/2 duplex sessions verify certificates by default and are not affected. The CNA CVSS 4.0 vector is AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N (9.1); our independent CVSS 3.1 assessment is AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N, with the on-path requirement treated as the main limiting factor.
Know when Req Llm gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Network reachable and unauthenticated (AV:N/PR:N), but the required on-path/MITM position is a condition beyond attacker control, so AC:H; token disclosure and session tampering give C:H/I:H, no availability impact.
Primary rating from Vendor (EEF).
CVSS VectorVendor: EEF
DescriptionCVE.org
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.
Technical POC Analysis
CWE-295, Improper Certificate Validation.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Applications using ReqLLM versions 1.9.0 through 1.28.0 with OpenAI WebSocket mode (Responses, Realtime, or Codex) are vulnerable to on-path attackers who can read or modify sessions and steal bearer tokens, potentially leading to unauthorized access to sensitive AI services. This affects teams leveraging these real-time AI capabilities, posing a risk to data confidentiality and integrity.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-108709
GHSA-w53j-6pxf-r2vw
NVD
CVE.org
EPSS
Exploit-DB