CVE-2026-2229
undici is vulnerable to Unhandled Exception in undici WebSocket Client Due to Invalid server_max_window_bits Validation
- State
- Published
- Severity
- 7.5 High
- Published
- Mar 12, 2026
- Updated
- Sep 14, 2026
- Reserved
- Feb 8, 2026
Description
ImpactThe undici WebSocket client is vulnerable to a denial-of-service attack due to improper validation of the server_max_window_bits parameter in the permessage-deflate extension. When a WebSocket client connects to a server, it automatically advertises support for permessage-deflate compression. A malicious server can respond with an out-of-range server_max_window_bits value (outside zlib's valid range of 8-15). When the server subsequently sends a compressed frame, the client attempts to create a zlib InflateRaw instance with the invalid windowBits value, causing a synchronous RangeError exception that is not caught, resulting in immediate process termination.
The vulnerability exists because:
* The isValidClientWindowBits() function only validates that the value contains ASCII digits, not that it falls within the valid range 8-15 * The createInflateRaw() call is not wrapped in a try-catch block * The resulting exception propagates up through the call stack and crashes the Node.js process
Scores
| CVSS | Score | Vector | Source |
|---|---|---|---|
| 3.1 | 7.5 High | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | openjs |
| 3.1 | 7.5 High | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | redhat-SADP |
Weaknesses
Affected Products
| Product | Versions |
|---|---|
undiciundici |
|
References
- https://github.com/nodejs/undici/security/advisories/GHSA-v9p9-hfj2-hcw8
- https://hackerone.com/reports/3487486
- https://cna.openjsf.org/security-advisories.html
- https://datatracker.ietf.org/doc/html/rfc7692
- https://nodejs.org/api/zlib.html#class-zlibinflateraw
- https://access.redhat.com/security/cve/CVE-2026-2229vdb-entry
- RHBZ#2447143issue-tracking
- https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-2229.json
- https://access.redhat.com/errata/RHSA-2026:17789vendor-advisory
- https://access.redhat.com/errata/RHSA-2026:7310vendor-advisory
- https://access.redhat.com/errata/RHSA-2026:7080vendor-advisory
- https://access.redhat.com/errata/RHSA-2026:7675vendor-advisory
- https://access.redhat.com/errata/RHSA-2026:7123vendor-advisory
- https://access.redhat.com/errata/RHSA-2026:7670vendor-advisory
- https://access.redhat.com/errata/RHSA-2026:7983vendor-advisory
- https://access.redhat.com/errata/RHSA-2026:7302vendor-advisory
- https://access.redhat.com/errata/RHSA-2026:7350vendor-advisory
- https://access.redhat.com/errata/RHSA-2026:34342vendor-advisory
- https://access.redhat.com/errata/RHSA-2026:9742vendor-advisory
- https://access.redhat.com/errata/RHSA-2026:13826vendor-advisory
- https://access.redhat.com/errata/RHSA-2026:5807vendor-advisory
- https://access.redhat.com/errata/RHSA-2026:21772vendor-advisory
- https://access.redhat.com/errata/RHSA-2026:21931vendor-advisory
- https://access.redhat.com/errata/RHSA-2026:56431vendor-advisory
Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.