Skip to main content

AgentJido ReqLLM CVE-2026-107685

| EUVDEUVD-2026-108709 CRITICAL
Improper Certificate Validation (CWE-295)
2026-10-23 EEF GHSA-w53j-6pxf-r2vw
9.1
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain on-path network position
  2. Delivery
    Present untrusted TLS certificate to wss client
  3. Exploit
    Client skips verification, handshake succeeds
  4. Execution
    Capture authorization bearer token
  5. Impact
    Read 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).

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

req_llm a389d718640ceb2d541a8f540ab954cbf5ef8313 <c7264fc0217fbacfb5562234ff790b8e4462de76
req_llm 1.9.0 <1.29.0

Affected Packages

euvd req_llm fix: 1.29.0

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

Vendor (EEF) PRIMARY 9.1 CRITICAL
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
vuln.today AI 7.4 HIGH

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.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (EEF).

CVSS VectorVendor: EEF

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 74% exploitable
Prevalence
Low
niche Elixir/Erlang LLM client library, limited production footprint
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy