Skip to main content

undici EUVDEUVD-2026-102314

| CVE-2026-109383 HIGH
Improper Certificate Validation (CWE-295)
2026-10-15 openjs
7.4
CVSS 3.1 · Vendor: openjs
View

Attack ChainAIDerived

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

  1. Access
    Gain man-in-the-middle network position
  2. Delivery
    Present cert valid under default checks
  3. Exploit
    Dropped checkServerIdentity fails to reject
  4. Execution
    TLS session silently accepted
  5. Impact
    Intercept and tamper with traffic

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V12 - Secure Communication Certificate validation
Exploitation Conditions

Exploitation requires that the target application passes a FUNCTION-valued tls option - specifically a custom checkServerIdentity callback used for certificate or public-key pinning - to undici's Agent or EnvHttpProxyAgent (including implicitly via fetch, request, or setGlobalDispatcher, since Agent is the default dispatcher). The flaw only manifests on affected versions (4.0.0-6.29.0, 7.0.0-7.30.0, 8.0.0-8.12.1). Additionally, the attacker must hold a man-in-the-middle position on the connection and present a certificate that still passes Node's DEFAULT hostname and chain validation but would have been rejected by the dropped custom callback. Limiting factors: applications that do NOT use a function-valued tls/checkServerIdentity option are not affected; applications that pass TLS options via connect (or requestTls/proxyTls for proxied destinations) are not affected; and the attacker gains nothing unless they can both intercept traffic and obtain a cert valid under default checks.

Impact

This is a genuine but conditional security-control bypass rather than a broad remote-code or data-theft flaw. The provided CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N, 7.4 HIGH) is internally consistent with the description: no authentication is required of the victim application (PR:N), but AC:H correctly reflects that exploitation is not trivial - the attacker must already hold a man-in-the-middle network position AND present a certificate that passes Node's default hostname and chain validation while only failing the application's custom checkServerIdentity logic. No EPSS score, CISA KEV entry, or POC indicator was supplied, so there is no public-exploit or active-exploitation signal to weigh; this reads as a defense-in-depth regression (certificate/public-key pinning silently disabled) rather than a mass-exploitable internet-facing bug. The practical risk is scoped tightly: only applications that pass a function-valued tls option (e.g., custom checkServerIdentity for pinning) are affected, so despite undici's ubiquity the vulnerable population is a narrow subset. Treat as a priority patch specifically for applications relying on undici-based pinning (TLS clients talking to high-value or MITM-exposed endpoints); for applications not using custom checkServerIdentity, real-world risk is effectively nil.

Exploit ScenarioDerived

An application uses undici (directly or via fetch/request/setGlobalDispatcher) with a custom checkServerIdentity callback to pin a specific server certificate or public key. An attacker positioned on the network path (e.g., rogue Wi-Fi, compromised router, or DNS redirection) presents a different certificate that chains to a trusted/mis-issued CA and matches the hostname - normally rejected by the pinning callback, but now silently accepted because the function-valued tls option was dropped during the JSON deep-clone, allowing the attacker to intercept and tamper with the TLS session. No public exploit code was identified in the provided data.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 15, 2026

Certificate pinning and custom TLS identity checks can be silently bypassed in undici versions 4.0.0 through 6.29.0, 7.0.0 through 7.30.0, and 8.0.0 through 8.12.1 because the Agent dispatcher drops function-valued tls options such as checkServerIdentity during a JSON deep clone before per-origin pool creation. An unauthenticated man-in-the-middle attacker who can present a certificate satisfying Node.js default hostname and chain validation but that the application's custom callback would have rejected can then be accepted, affecting request, fetch, and setGlobalDispatcher paths plus EnvHttpProxyAgent direct and no-proxy routes when applications rely on function-valued TLS verification. This is a conditional security-control bypass rather than a broad remote-code or data-theft flaw; no public exploit identified at time of analysis and no CISA KEV active exploitation is reported, while vendor-released patches are available in undici 6.29.1, 7.30.1, and 8.12.2.

RemediationAI

Upgrade to a fixed undici release: 6.29.1, 7.30.1, or 8.12.2, or later, which preserve the tls option outside the JSON clone so custom verification callbacks are forwarded unchanged; consult https://github.com/nodejs/undici/security/advisories/GHSA-2m5v-pch6-74hx for vendor details. If immediate upgrade is not possible, pass TLS options through connect instead of tls, or for proxied destinations use requestTls and proxyTls; these workarounds avoid the dropped-function path but may require restructuring dispatcher setup and may not map cleanly to all request or fetch call sites. Because this is a silent bypass of an extra verification control, applications that rely on custom checkServerIdentity pinning should treat unupgraded connections using tls options as untrusted for pinned destinations until one of the fixed versions is deployed, and should audit code for function-valued tls options passed to Agent or EnvHttpProxyAgent.

Affected VersionsENISA

undici 4.0.0 <6.29.1
undici 7.0.0 <7.30.1
undici 8.0.0 <8.12.2

Affected Packages

euvd undici fix: 6.29.1, 7.30.1, 8.12.2

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

undici is Node.js's HTTP client library, and its Agent is the default dispatcher behind request, fetch, and setGlobalDispatcher, with EnvHttpProxyAgent also affected on direct and no-proxy routes. The root cause is CWE-295 (Improper Certificate Validation): Agent constructor options are passed through a JSON-based deep clone before being forwarded to each per-origin pool, and JSON cannot represent functions, so a caller-supplied tls.checkServerIdentity callback used for certificate policy or public-key pinning is silently removed before reaching the TLS layer. Node's default hostname and chain validation still run, meaning the flaw does not disable all TLS checks; it defeats only additional verification logic that depends on a function-valued tls option. The supplied CPE cpe:2.3:a:undici:undici:*:*:*:*:*:*:*:* identifies undici as the affected product, and intelligence tags Information Disclosure, Node.js, and Undici align with the conditional MITM disclosure impact.

Know when Undici 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 (openjs) PRIMARY 7.4 HIGH
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
vuln.today AI 7.4 HIGH

AV:N and PR:N as the victim app needs no auth; AC:H because a MITM position plus a default-valid certificate and non-default pinning config are required; C:H/I:H for MITM read/tamper, A:N.

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

Primary rating from Vendor (openjs).

CVSS VectorVendor: openjs

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

2
Patch available
Oct 15, 2026 - 20:03 EUVD
CVE Published
Oct 15, 2026 - 18:34 cve.org
HIGH 7.4

DescriptionCVE.org

undici is an HTTP client library for Node.js. In versions 4.0.0 through 6.29.0, 7.0.0 through 7.30.0, and 8.0.0 through 8.12.1, its Agent dispatcher passes its constructor options through a JSON-based deep clone before forwarding them to each per-origin pool, and because JSON cannot represent functions, a caller-supplied tls option containing a checkServerIdentity callback is silently dropped before it reaches the TLS layer. As a result, a TLS peer whose certificate a custom checkServerIdentity was written to reject, but which passes Node's default hostname and chain checks, is silently accepted. Because Agent is the default dispatcher behind request, fetch, and setGlobalDispatcher, this affects the path most applications use, and EnvHttpProxyAgent is affected on its direct and no-proxy routes as well, while only applications that pass a function-valued tls option such as a custom checkServerIdentity for certificate or public-key pinning are at risk. The issue is fixed in undici 6.29.1, 7.30.1, and 8.12.2, which preserve the tls option outside the JSON clone so custom verification callbacks are forwarded unchanged, and users should upgrade to one of those versions or later. As a workaround, pass the TLS options through connect instead of tls, or for proxied destinations use requestTls and proxyTls.

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

Undici, the HTTP client library bundled with Node.js and used by countless enterprise applications for outbound TLS traffic, can silently discard an application's custom certificate-pinning and identity-check callbacks, leaving affected services exposed to man-in-the-middle interception under conditions the application believed it had rejected. Organizations running undici 4.0.0-6.29.0, 7.0.0-7.30.0, or 8.0.0-8.12.1 in production should treat this as a trust-boundary failure for any service that relies on function-valued TLS verification, and should prioritize remediation because the bypass is silent-no error is raised-so integrations may have been operating without their intended cryptographic guarantees for an unknown period. Leadership should care because the failure undermines exactly the control used to protect sensitive data in transit, and the affected library is a transitive dependency that most teams do not track directly.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 93% exploitable
Prevalence
Ubiquitous
undici backs Node.js fetch/request; shipped in Node.js core runtime
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub

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 HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

37
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +37
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.

More in Undici

View all
CVE-2022-35949 CRITICAL POC
9.8 Aug 12

undici is an HTTP/1.1 client, written from scratch for Node.js.`undici` is vulnerable to SSRF (Server-side Request Forge

CVE-2026-12151 HIGH POC
7.5 Jun 17

Memory exhaustion denial of service in the undici WebSocket client (versions 6.17.0 and later) allows a malicious or com

CVE-2026-14643 HIGH POC
7.5 Jul 29

Cross-user information disclosure in undici's cache interceptor allows authenticated users' responses to be served from

CVE-2026-16729 MEDIUM POC
6.5 Jul 29

Cookie attribute injection in undici's setCookie function allows attacker-controlled domain values or unparsed array ent

CVE-2022-31151 MEDIUM POC
6.5 Jul 21

Authorization headers are cleared on cross-origin redirect. Rated medium severity (CVSS 6.5), this vulnerability is remo

CVE-2022-32210 MEDIUM POC
6.5 Jul 14

`Undici.ProxyAgent` never verifies the remote server's certificate, and always exposes all request & response data to th

CVE-2026-15157 MEDIUM POC
5.4 Jul 29

CRLF injection in undici's HTTP/1.1 dispatcher enables HTTP header injection and potential request smuggling when applic

CVE-2023-23936 MEDIUM POC
5.4 Feb 16

Undici is an HTTP/1.1 client for Node.js. Rated medium severity (CVSS 5.4), this vulnerability is remotely exploitable,

CVE-2022-35948 MEDIUM POC
5.3 Aug 15

undici is an HTTP/1.1 client, written from scratch for Node.js.`=< undici@5.8.0` users are vulnerable to _CRLF Injection

CVE-2026-13697 CRITICAL
9.1 Jul 29

Cross-user information disclosure and a parse-time denial of service in undici's HTTP cache interceptor affect versions

CVE-2026-84961 CRITICAL
9.1 Sep 04

TLS certificate validation bypass in undici's BalancedPool dispatcher silently discards function-valued options - includ

CVE-2026-6734 HIGH
8.8 Jun 17

Cross-origin request misrouting in undici's Socks5ProxyAgent (introduced in 7.23.0, affecting all releases through 8.1.0

Vendor StatusVendor

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