VDB
Sign up
HIGH7.5

GHSA-rfgv-xxqx-mfg5

undici vulnerable to Denial of Service via unrequested WebSocket subprotocol

Quick fix

GHSA-rfgv-xxqx-mfg5 — undici: upgrade to the fixed version with the command below.

npm install undici@6.28.1

Details

### Impact

The undici WebSocket client throws an uncaught `TypeError` during the opening handshake when a server's `101` response includes a `Sec-WebSocket-Protocol` header that the client never requested. The throw occurs in a `queueMicrotask` callback with no surrounding `try`/`catch`, so it propagates as an uncaught exception and terminates the Node.js process. This is a remote, unauthenticated denial of service against any application that opens a WebSocket to an attacker controlled or compromised server, or over a plaintext `ws://` connection subject to a machine-in-the-middle. It affects the default `new WebSocket(url)` usage, where no subprotocol is requested. Per RFC 6455 section 4.1, an unrequested subprotocol must fail the connection, not crash it.

All releases starting at undici 6.7.0 are affected.

### Patches

Upgrade to undici 6.28.1, 7.29.1, or 8.10.2.

### Workarounds

No workaround is available. The fix must be applied through an upgrade.

Are you affected?

Enter the version of the package you're using.

Affected packages

npm/undici
Introduced in: 6.7.0Fixed in: 6.28.1
Fixnpm install undici@6.28.1
npm/undici
Introduced in: 7.0.0Fixed in: 7.29.1
Fixnpm install undici@7.29.1
npm/undici
Introduced in: 8.0.0Fixed in: 8.10.2
Fixnpm install undici@8.10.2

References