Skip to main content

undici CVE-2026-109932

| EUVDEUVD-2026-102321 MEDIUM
Uncontrolled Resource Consumption (CWE-400)
2026-10-15 openjs
5.9
CVSS 3.1 · Vendor: openjs
View

Attack ChainAIDerived

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

  1. Access
    Lure client to malicious/compromised WebSocket server
  2. Delivery
    Flood small PING frames, never read PONGs
  3. Exploit
    Client auto-queues PONGs ignoring backpressure
  4. Execution
    Outbound queue and heap grow unbounded
  5. Impact
    Node.js process OOM and terminates

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an application using undici's WebSocket client - or the WebSocket bundled with and exposed by Node.js - in an affected version (5.15.0 through 6.29.0, 7.0.0 through 7.30.0, or 8.0.0 through 8.12.1) to establish and maintain a WebSocket connection to a server the attacker controls or has compromised. The server must stream many small PING frames while refusing to read the client's PONG responses; the client's automatic PONG reply and its ignoring of socket write backpressure are default behavior, so no special client configuration is needed. The key limiting factor is directional: this is a client-side flaw, so exploitation depends on the victim connecting outbound to a hostile WebSocket endpoint rather than on an attacker reaching a listening service, and the only outcome is a crash (availability). No workaround exists; mitigation is upgrading to 6.29.1, 7.30.1, 8.12.2, or later.

Impact

This is a genuine but moderate-priority availability issue, correctly rated medium (CVSS 5.9). The vector CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H is internally consistent with the description: remote (AV:N) and unauthenticated (PR:N), but with high attack complexity (AC:H) because this is a CLIENT-side flaw - the attacker does not attack a listening service but instead must get the victim's undici WebSocket client to connect to an attacker-controlled or compromised server, a precondition outside the attacker's sole control. Impact is availability-only (C:N/I:N/A:H), matching the CWE-400 uncontrolled-resource-consumption (unbounded outbound PONG queue → OOM process termination). No EPSS score was provided in the input, so exploitation probability cannot be quantified. There is no KEV listing and no POC referenced, so exploitation status is 'no public exploit identified at time of analysis.' Net: a real, patchable DoS worth remediating promptly given undici's enormous install base, but it is not an emergency - it causes a crash, not compromise, and requires the specific condition of connecting outbound to a hostile WebSocket endpoint rather than a widely-sprayable server-side exploit.

Exploit ScenarioDerived

An application using undici's WebSocket client (or Node.js's bundled global WebSocket) connects to a WebSocket endpoint the attacker controls or has compromised. The malicious server streams a continuous flood of small PING frames while never reading the client's PONG replies; undici auto-generates a PONG for each PING and ignores socket write backpressure, so the outbound queue and heap grow without bound until the Node.js process exhausts memory and terminates. No public exploit code is identified, but the technique is simple and fully described in the advisory.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
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 15, 2026

Memory exhaustion in undici's WebSocket client (versions 5.15.0 through 6.29.0, 7.0.0 through 7.30.0, and 8.0.0 through 8.12.1, including the WebSocket bundled with and exposed by Node.js) allows a malicious or compromised WebSocket server to crash the victim process. For every PING frame received the client automatically writes a PONG response while ignoring socket write backpressure, so a server that streams small PING frames and never reads the client's PONGs causes the outbound write queue and heap to grow without bound until the Node.js process terminates. The attack is remote, requires no authentication (CVSS PR:N), and needs only that an affected client connect outbound to an attacker-controlled endpoint; no public exploit code has been identified at time of analysis, and the sole impact is availability, which is why this is assessed as a genuine but moderate-priority issue at CVSS 5.9.

RemediationAI

Upgrade to a fixed release: undici 6.29.1, 7.30.1, or 8.12.2 (or any later version on those lines). There is no configuration-level workaround for the flawed PONG/backpressure behavior, so if the application directly depends on undici, pin the minimum version in package.json and rebuild the lockfile, and if it relies on Node.js's bundled WebSocket, upgrade the Node.js runtime to a release that carries undici 6.29.1, 7.30.1, 8.12.2 or later. Where an immediate upgrade is not possible, compensating controls should target the precondition that the client connects to a hostile endpoint: restrict outbound WebSocket destinations to an explicit allowlist of trusted hosts via egress firewall or forward proxy, accepting that this breaks legitimate connections to unlisted endpoints; or, if the WebSocket client is only needed for internal services, disable outbound wss/ws access entirely at the network layer, with the trade-off of losing any external WebSocket functionality. Operational detection is possible by monitoring Node.js heap and RSS growth on processes holding WebSocket connections and by alerting on long-lived connections with a high ratio of unacknowledged outbound writes, but container memory limits or supervisor-based restarts only convert a hard crash into a controlled restart and do not prevent the resource exhaustion itself. Advisory details and the fixed versions are documented at https://github.com/nodejs/undici/security/advisories/GHSA-9fm3-97px-rjf6 and https://cna.openjsf.org/security-advisories.html. Note that no vendor-released patch exists for the unpatched version ranges themselves; the only vendor-released patches are the 6.29.1, 7.30.1, and 8.12.2 releases named above.

Affected VersionsENISA

undici 8.0.0 <8.12.2
undici 7.0.0 <7.30.1
undici 5.15.0 <6.29.1

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 the HTTP/1.1 client library for Node.js and also underpins Node's built-in fetch implementation and the bundled global WebSocket. The flaw is a classic uncontrolled resource consumption issue (CWE-400) in the WebSocket protocol handling layer: the protocol requires that a PING control frame be answered with a PONG carrying the same payload, and undici performs this reply automatically. The defect is that the code writes the PONG via the underlying socket without ever inspecting the return value or listening for the 'drain' event, i.e. it ignores HTTP/TCP backpressure signaling. Because the frame parser continues to consume inbound frames regardless of pending outbound data, a server that emits a continuous stream of small PING frames while deliberately not reading from its end of the connection leaves every PONG queued in user-space memory. The asymmetry is what makes the attack cheap for the adversary: tiny inbound frames translate into a much larger retained outbound queue plus associated heap allocations, and the write buffer grows monotonically rather than being bounded by socket buffering. The CVSS vector CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H reflects a network-reachable, unauthenticated attack with high attack complexity (attacker must control the endpoint the client dials and sustain the connection), no confidentiality or integrity impact, and high availability impact. The upstream fix in 6.29.1, 7.30.1, and 8.12.2 pauses WebSocket frame parsing when the automatic PONG write hits backpressure and resumes on the socket 'drain' event, which bounds the outbound queue.

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 5.9 MEDIUM
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 5.9 MEDIUM

Remote and unauthenticated (AV:N/PR:N), but AC:H because the victim client must connect to an attacker-controlled or compromised server; availability-only impact (A:H) via memory exhaustion, no C/I.

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

Primary rating from Vendor (openjs).

CVSS VectorVendor: openjs

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

Lifecycle Timeline

2
Patch available
Oct 15, 2026 - 20:03 EUVD
CVE Published
Oct 15, 2026 - 18:44 cve.org
MEDIUM 5.9

DescriptionCVE.org

undici is an HTTP client library for Node.js. In versions 5.15.0 through 6.29.0, 7.0.0 through 7.30.0, and 8.0.0 through 8.12.1, its WebSocket client, including the bundled WebSocket exposed by Node.js, can be driven to exhaust process memory by a malicious or compromised WebSocket server. For every PING frame received, the client automatically writes a PONG response and ignores the backpressure signal from the socket write, so a server that streams small PING frames while never reading the client's PONGs makes the outbound write queue and heap grow without bound until the Node.js process runs out of memory and terminates. The attack is remote and unauthenticated, needs only a normal WebSocket connection, and is asymmetric, since small inbound PINGs produce a much larger retained outbound queue, with availability the only impact. The issue is fixed in undici 6.29.1, 7.30.1, and 8.12.2, which pause WebSocket frame parsing when the automatic PONG response hits socket backpressure and resume on drain, bounding the outbound queue, and users should upgrade to one of those versions or later. There is no workaround.

Threat Intelligence Overview

EPSS Score
0.3%
Top 78% exploitable
Prevalence
High
undici is bundled in Node.js and backs its global fetch/WebSocket
Data Quality
6 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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
High
Technical Impact
Partial

Priority Score

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

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

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