{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-2229","assignerOrgId":"ce714d77-add3-4f53-aff5-83d477b104bb","state":"PUBLISHED","assignerShortName":"openjs","dateReserved":"2026-02-08T17:51:16.985Z","datePublished":"2026-03-12T20:27:05.600Z","dateUpdated":"2026-03-13T13:06:46.814Z"},"containers":{"cna":{"providerMetadata":{"orgId":"ce714d77-add3-4f53-aff5-83d477b104bb","shortName":"openjs","dateUpdated":"2026-03-12T20:27:05.600Z"},"title":"undici is vulnerable to Unhandled Exception in undici WebSocket Client Due to Invalid server_max_window_bits Validation","problemTypes":[{"descriptions":[{"lang":"en","cweId":"CWE-248","description":"CWE-248 Uncaught exception","type":"CWE"}]},{"descriptions":[{"lang":"en","cweId":"CWE-1284","description":"CWE-1284 Improper validation of specified quantity in input","type":"CWE"}]}],"affected":[{"vendor":"undici","product":"undici","collectionURL":"https://github.com/nodejs/undici/","packageName":"undici","repo":"https://github.com/nodejs/undici/","versions":[{"status":"affected","version":"< 6.24.0; 7.0.0 < 7.24.0"},{"status":"unaffected","version":"6.24.0: 7.24.0"}],"defaultStatus":"unaffected"}],"descriptions":[{"lang":"en","value":"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.\n\nThe vulnerability exists because:\n\n  *  The isValidClientWindowBits() function only validates that the value contains ASCII digits, not that it falls within the valid range 8-15\n  *  The createInflateRaw() call is not wrapped in a try-catch block\n  *  The resulting exception propagates up through the call stack and crashes the Node.js process","supportingMedia":[{"type":"text/html","base64":false,"value":"<h3><span>Impact</span></h3><p>The undici WebSocket client is vulnerable to a denial-of-service attack due to improper validation of the&nbsp;<code>server_max_window_bits</code>&nbsp;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&nbsp;<code>server_max_window_bits</code>&nbsp;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.</p><p>The vulnerability exists because:</p><ol><li>The&nbsp;<code>isValidClientWindowBits()</code>&nbsp;function only validates that the value contains ASCII digits, not that it falls within the valid range 8-15</li><li>The&nbsp;<code>createInflateRaw()</code>&nbsp;call is not wrapped in a try-catch block</li><li>The resulting exception propagates up through the call stack and crashes the Node.js process</li></ol><br>"}]}],"references":[{"url":"https://github.com/nodejs/undici/security/advisories/GHSA-v9p9-hfj2-hcw8"},{"url":"https://hackerone.com/reports/3487486"},{"url":"https://cna.openjsf.org/security-advisories.html"},{"url":"https://datatracker.ietf.org/doc/html/rfc7692"},{"url":"https://nodejs.org/api/zlib.html#class-zlibinflateraw"}],"metrics":[{"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}],"cvssV3_1":{"version":"3.1","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"HIGH","baseSeverity":"HIGH","baseScore":7.5,"vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}}],"credits":[{"lang":"en","value":"Matteo Collina","type":"remediation developer"},{"lang":"en","value":"Ulises Gascón","type":"remediation reviewer"},{"lang":"en","value":"Rafael Gonzaga","type":"remediation reviewer"},{"lang":"en","value":"Ethan Arrowood","type":"remediation reviewer"},{"lang":"en","value":"Aisle Research","type":"reporter"}],"source":{"advisory":"GHSA-v9p9-hfj2-hcw8","discovery":"UNKNOWN"},"x_generator":{"engine":"Vulnogram 1.0.0"}},"adp":[{"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-03-13T13:06:30.575811Z","id":"CVE-2026-2229","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2026-03-13T13:06:46.814Z"}}]}}