Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure client to malicious/compromised WebSocket server
-
DeliveryFlood small PING frames, never read PONGs
-
ExploitClient auto-queues PONGs ignoring backpressure
-
ExecutionOutbound queue and heap grow unbounded
-
ImpactNode.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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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
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
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
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.
Primary rating from Vendor (openjs).
CVSS VectorVendor: openjs
Lifecycle Timeline
2DescriptionCVE.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
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
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
undici is an HTTP/1.1 client, written from scratch for Node.js.`undici` is vulnerable to SSRF (Server-side Request Forge
Memory exhaustion denial of service in the undici WebSocket client (versions 6.17.0 and later) allows a malicious or com
Cross-user information disclosure in undici's cache interceptor allows authenticated users' responses to be served from
Cookie attribute injection in undici's setCookie function allows attacker-controlled domain values or unparsed array ent
Authorization headers are cleared on cross-origin redirect. Rated medium severity (CVSS 6.5), this vulnerability is remo
`Undici.ProxyAgent` never verifies the remote server's certificate, and always exposes all request & response data to th
CRLF injection in undici's HTTP/1.1 dispatcher enables HTTP header injection and potential request smuggling when applic
Undici is an HTTP/1.1 client for Node.js. Rated medium severity (CVSS 5.4), this vulnerability is remotely exploitable,
undici is an HTTP/1.1 client, written from scratch for Node.js.`=< undici@5.8.0` users are vulnerable to _CRLF Injection
Cross-user information disclosure and a parse-time denial of service in undici's HTTP cache interceptor affect versions
TLS certificate validation bypass in undici's BalancedPool dispatcher silently discards function-valued options - includ
Cross-origin request misrouting in undici's Socks5ProxyAgent (introduced in 7.23.0, affecting all releases through 8.1.0
EUVD-2026-102321
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB