undici WebSocket client vulnerable to denial of service via fragment count bypass
Published 19 Jun 2026 · Updated 10 Sept 2026
Affected packages
- Affected
- <6.27.0
- Fixed in
- 6.27.0
npm install undici@6.27.0- Affected
- >=7.0.0 <7.28.0
- Fixed in
- 7.28.0
npm install undici@7.28.0- Affected
- >=8.0.0 <8.5.0
- Fixed in
- 8.5.0
npm install undici@8.5.0Details
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 v6.27.0, v7.28.0 or v8.5.0.
Workarounds
No workaround is available. The fix must be applied through an upgrade.
Is GHSA-vxpw-j846-p89q in any of your client repos?
Checking one package by hand is fine. Checking it across forty client projects is not. NPMscan reads the lockfiles in every GitHub repo you pick, finds each project with an affected undici, and gives you the command that fixes it.
References
Advisory data from OSV.dev (opens OSV.dev in a new tab), refreshed daily.