CVEvulnerability
CVE-2026-2229
7.5 HIGH
Official page ↗
- Status
- Modified
- Published
- 2026-03-12
- Last modified
- 2026-09-04
- Assigner
- ce714d77-add3-4f53-aff5-83d477b104bb
- CVSS 3.1 (ce714d77-add3-4f53-aff5-83d477b104bb)
- 7.5 HIGH — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- CVSS 3.1 (0b0ca135-0b70-47e7-9f44-1890c2a1c46c)
- 7.5 HIGH — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Weaknesses
- CWE-1284, CWE-248
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
Affected configurations
• nodejs undici (< 6.24.0)
• nodejs undici (>= 7.0.0 < 7.24.0)
Related
References
- https://cna.openjsf.org/security-advisories.html Vendor Advisory
- https://datatracker.ietf.org/doc/html/rfc7692 Technical Description
- https://github.com/nodejs/undici/security/advisories/GHSA-v9p9-hfj2-hcw8 Vendor Advisory
- https://hackerone.com/reports/3487486 Permissions Required
- https://nodejs.org/api/zlib.html#class-zlibinflateraw Technical Description
- https://access.redhat.com/errata/RHSA-2026:13826 access.redhat.com
- https://access.redhat.com/errata/RHSA-2026:17789 access.redhat.com
- https://access.redhat.com/errata/RHSA-2026:21772 access.redhat.com
- https://access.redhat.com/errata/RHSA-2026:21931 access.redhat.com
- https://access.redhat.com/errata/RHSA-2026:34342 access.redhat.com
- https://access.redhat.com/errata/RHSA-2026:56431 access.redhat.com
- https://access.redhat.com/errata/RHSA-2026:5807 access.redhat.com
- https://access.redhat.com/errata/RHSA-2026:7080 access.redhat.com
- https://access.redhat.com/errata/RHSA-2026:7123 access.redhat.com
- https://access.redhat.com/errata/RHSA-2026:7302 access.redhat.com
- https://access.redhat.com/errata/RHSA-2026:7310 access.redhat.com
- https://access.redhat.com/errata/RHSA-2026:7350 access.redhat.com
- https://access.redhat.com/errata/RHSA-2026:7670 access.redhat.com
- https://access.redhat.com/errata/RHSA-2026:7675 access.redhat.com
- https://access.redhat.com/errata/RHSA-2026:7983 access.redhat.com
- https://access.redhat.com/errata/RHSA-2026:9742 access.redhat.com
- https://access.redhat.com/security/cve/CVE-2026-2229 access.redhat.com
- https://bugzilla.redhat.com/show_bug.cgi?id=2447143 bugzilla.redhat.com
- https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-2229.json security.access.redhat.com