Description
Impact: The undici WebSocket client enforces maxPayloadSize on the cumulative byte count of fragments in a message but does not enforce a limit on the number of fragments. A malicious WebSocket server can stream many small or empty continuation frames that each pass per-frame and cumulative-size validation, collectively 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(...)) or the WebSocketStream API that can be induced to connect to an attacker-controlled or compromised WebSocket endpoint. All releases starting at undici 6.17.0 are affected. Patches: Upgrade to undici >= 6.26.0, >= 7.28.0, or >= 8.5.0. Workarounds: No workaround is available. The fix must be applied through an upgrade.
CVSS breakdown
Affected products
- undici / undici0 – 6.26.0
- undici / undici6.26.0 – 6.26.0
- undici / undici7.0.0 – 7.28.0
- undici / undici7.28.0 – 7.28.0
- undici / undici8.0.0 – 8.5.0
- undici / undici8.5.0 – 8.5.0
References
- VENDOR_ADVISORYhttps://github.com/nodejs/undici/security/advisories/GHSA-vxpw-j846-p89q
- VENDOR_ADVISORYhttps://cna.openjsf.org/security-advisories.html