Monitor vulnerabilities like this one.
Sign up free to get alerted when software you use is affected.
7.5
Node.js WebSocket Client Can Crash from Large Compressed Data
CVE-2026-1526
GHSA-vrm6-8vpv-qv8q
Summary
The Node.js WebSocket client can crash or become unresponsive if it receives a maliciously compressed message. This happens when a server sends a compressed message that expands to a huge size in memory. To prevent this, update to a version of the undici library that fixes this issue.
What to do
- Update undici to version 6.24.0.
- Update undici to version 7.24.0.
Affected software
| Vendor | Product | Affected versions | Fix available |
|---|---|---|---|
| – | undici | <= 6.24.0 | 6.24.0 |
| – | undici | > 7.0.0 , <= 7.24.0 | 7.24.0 |
Original title
Undici has Unbounded Memory Consumption in WebSocket permessage-deflate Decompression
Original description
## Description
The undici WebSocket client is vulnerable to a denial-of-service attack via unbounded memory consumption during permessage-deflate decompression. When a WebSocket connection negotiates the permessage-deflate extension, the client decompresses incoming compressed frames without enforcing any limit on the decompressed data size. A malicious WebSocket server can send a small compressed frame (a "decompression bomb") that expands to an extremely large size in memory, causing the Node.js process to exhaust available memory and crash or become unresponsive.
The vulnerability exists in the `PerMessageDeflate.decompress()` method, which accumulates all decompressed chunks in memory and concatenates them into a single Buffer without checking whether the total size exceeds a safe threshold.
## Impact
- Remote denial of service against any Node.js application using undici's WebSocket client
- A single compressed WebSocket frame of ~6 MB can decompress to ~1 GB or more
- Memory exhaustion occurs in native/external memory, bypassing V8 heap limits
- No application-level mitigation is possible as decompression occurs before message delivery
### Patches
Users should upgrade to fixed versions.
### Workarounds
No workaround are possible.
The undici WebSocket client is vulnerable to a denial-of-service attack via unbounded memory consumption during permessage-deflate decompression. When a WebSocket connection negotiates the permessage-deflate extension, the client decompresses incoming compressed frames without enforcing any limit on the decompressed data size. A malicious WebSocket server can send a small compressed frame (a "decompression bomb") that expands to an extremely large size in memory, causing the Node.js process to exhaust available memory and crash or become unresponsive.
The vulnerability exists in the `PerMessageDeflate.decompress()` method, which accumulates all decompressed chunks in memory and concatenates them into a single Buffer without checking whether the total size exceeds a safe threshold.
## Impact
- Remote denial of service against any Node.js application using undici's WebSocket client
- A single compressed WebSocket frame of ~6 MB can decompress to ~1 GB or more
- Memory exhaustion occurs in native/external memory, bypassing V8 heap limits
- No application-level mitigation is possible as decompression occurs before message delivery
### Patches
Users should upgrade to fixed versions.
### Workarounds
No workaround are possible.
nvd CVSS3.1
7.5
Vulnerability type
CWE-409
- https://cna.openjsf.org/security-advisories.html
- https://datatracker.ietf.org/doc/html/rfc7692
- https://github.com/nodejs/undici/security/advisories/GHSA-vrm6-8vpv-qv8q
- https://hackerone.com/reports/3481206
- https://nvd.nist.gov/vuln/detail/CVE-2026-1526
- https://owasp.org/www-community/attacks/Denial_of_Service
- https://github.com/advisories/GHSA-vrm6-8vpv-qv8q
Published: 13 Mar 2026 · Updated: 14 Mar 2026 · First seen: 12 Mar 2026