Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Network-reachable malicious server, no authentication or user interaction on the client beyond initiating the connection, availability-only impact via memory exhaustion, no confidentiality or integrity effect.
Primary rating from Vendor (openjs).
CVSS VectorVendor: openjs
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Lifecycle Timeline
2Blast Radius
ecosystem impact- 2 npm packages depend on undici (1 direct, 1 indirect)
Ecosystem-wide dependent count for version 8.0.0.
DescriptionCVE.org
Impact: The undici WebSocket client enforces maxPayloadSize per-frame but does not enforce the cumulative size of fragmented uncompressed messages. A malicious WebSocket server can stream many small fragments that each pass per-frame validation but collectively exceed the configured limit, causing unbounded memory growth in the client process. The result is memory exhaustion and a denial of service.
Affected applications are those using the undici WebSocket client (new WebSocket(...)) that can be induced to connect to an attacker-controlled or compromised WebSocket endpoint.
This is a regression specific to undici 8.1.0. The 6.25.0 line shipped the equivalent cumulative check from the start and is unaffected. The 7.x line never had the maxPayloadSize feature and is also unaffected.
Patches: Upgrade to undici >= 8.5.0.
Workarounds: No workaround is available. The fix must be applied through an upgrade.
AnalysisAI
Denial-of-service in the undici WebSocket client (Node.js HTTP/WebSocket library) version 8.1.0 through versions prior to 8.5.0 allows a malicious or compromised WebSocket server to exhaust client memory by streaming many small fragmented frames that individually pass the per-frame maxPayloadSize check but cumulatively bypass any size limit. The flaw is a regression introduced in the 8.1.0 line; no public exploit identified at time of analysis. Impact is limited to availability (process crash via memory exhaustion) with no confidentiality or integrity consequence per the CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H vector.
Technical ContextAI
undici is the official high-performance HTTP/1.1 and WebSocket client used by modern Node.js runtimes (and exposed via the built-in fetch and WebSocket globals). The WebSocket protocol (RFC 6455) permits a single logical message to be split across many continuation frames; the receiving implementation must buffer fragments until the FIN bit arrives. The maxPayloadSize option in undici was intended to bound this buffering, but the check was applied only to individual frame sizes rather than the running total of an in-progress fragmented message - a classic CWE-400 (Uncontrolled Resource Consumption) accounting bug. The 6.25.0 line shipped the cumulative check correctly and the 7.x line never had the maxPayloadSize feature, so the defect is isolated to the 8.x branch starting at 8.1.0. Affected CPE is cpe:2.3:a:undici:undici:*:*:*:*:*:*:*:* covering all 8.1.0-8.4.x releases.
RemediationAI
Vendor-released patch: undici 8.5.0 - upgrade the direct or transitive undici dependency to >= 8.5.0 per the maintainer advisory at https://github.com/nodejs/undici/security/advisories/GHSA-38rv-x7px-6hhq. The advisory explicitly states no workaround is available because the per-frame check cannot be reconfigured to enforce cumulative limits without the code fix; downgrading to 6.25.0 is an alternative for projects that can tolerate the older API surface, and migrating to the 7.x line is also unaffected. For applications that cannot upgrade immediately, the only meaningful compensating control is to restrict outbound WebSocket destinations via an egress allow-list or proxy so the client cannot be coerced into connecting to attacker-controlled endpoints - note this breaks any feature that legitimately consumes user-supplied WebSocket URLs. Process-level memory limits (container cgroup memory caps, Node's --max-old-space-size) will convert the exhaustion into a faster, more contained crash rather than preventing the DoS.
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
Cross-origin request misrouting in undici's Socks5ProxyAgent (introduced in 7.23.0, affecting all releases through 8.1.0
Node.js undici WebSocket client denial-of-service vulnerability allows remote attackers to crash the process by sending
Same weakness CWE-400 – Uncontrolled Resource Consumption
View allSame technique Denial Of Service
View allVendor StatusVendor
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-37752
GHSA-38rv-x7px-6hhq