CVE-2026-1528
High · 7.5CVSS
7.5
EPSS
0.5%
Published
Mar 12, 2026
CISA due date
—
Cloudanix analysis
A Node.js app can be forced to crash if it opens a WebSocket connection to a hostile server that sends a specially oversized message length.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
undici's WebSocket ByteParser performs unchecked arithmetic on the 64-bit payload-length form. A peer that advertises an extremely large length overflows that math, leaves the parser in an invalid state, and throws an uncaught TypeError that terminates the Node.js process. Confidentiality and integrity are unaffected; the sole impact is complete loss of process availability.
Why it matters to the business
Any Node.js service that uses undici to open WebSocket connections can be crashed by a remote peer, causing outages, dropped sessions, and worker restarts. undici is a core HTTP and WebSocket client in the Node.js ecosystem, so the blast radius includes direct and transitive dependents. The issue is not listed in CISA KEV, has no known in-the-wild exploitation, and a low, flat EPSS (~0.49%), but it has been public for about 200 days and remains a simple availability risk until patched.
How an attack unfolds
An attacker who can make a vulnerable undici client complete a WebSocket handshake to an endpoint they control (malicious or user-supplied URL, compromised legitimate server, or on-path position) finishes the handshake normally, then replies with a WebSocket frame that uses the 64-bit length encoding and an extremely large length value. ByteParser overflows, enters an invalid state, and throws a TypeError that typical application error handling does not catch, killing the process. No credentials, data theft, or code execution are required; the objective is process termination.
How to fix it
Upgrade undici to v7.24.0 or later on the 7.x line, or to v6.24.0 or later on the 6.x line, and redeploy so lockfiles, containers, and bundled copies pick up the patch. There is no configuration-only fix in vulnerable versions. Until upgraded, do not open WebSocket connections to untrusted or user-influenced URLs, restrict outbound WebSocket destinations, and run the process under a supervisor so a crash restarts the worker.
How to confirm the fix worked
Confirm installed undici is >= 7.24.0 or >= 6.24.0 via npm ls undici, package-lock.json / yarn.lock / pnpm-lock.yaml, and node_modules/undici/package.json, including transitive copies. Rebuild and redeploy images that vendor undici. After upgrade, open a WebSocket to a trusted server and confirm the process stays up. Search lockfiles and SBOM/image scans for undici 6.x below 6.24.0 and 7.x below 7.24.0.
Typical attack path
- Find a Node.js application using a vulnerable undici release that initiates outbound WebSocket connections.
- Cause that client to connect to an attacker-controlled WebSocket endpoint (untrusted URL, compromised server, or network interception).
- Complete a normal WebSocket handshake.
- Send a WebSocket frame that uses the 64-bit payload-length form with an extremely large length.
- Observe the client process exit with an uncaught TypeError from ByteParser.
How to detect it
No in-the-wild exploitation is reported (exploit maturity none, not in KEV, low flat EPSS). Hunt historically for sudden Node.js process exits coinciding with outbound WebSocket use: uncaught TypeError stack traces naming undici ByteParser or the WebSocket parser, supervisor/orchestrator restart storms on WebSocket client workloads, and core dumps or stderr from those processes. Correlate crashes with connections to unusual WebSocket endpoints. Absence of those artifacts does not prove non-exposure; it only suggests this crash path was not observed.
- ByteParser
- uncaught TypeError
- TypeError
- undici
- WebSocket
- node_modules/undici
- websocket
- FATAL ERROR
- process exit
What your security team should do
- Inventory Node.js apps, lockfiles, and container images for undici 6.x < 6.24.0 and 7.x < 7.24.0, including transitive dependencies.
- Patch first those services that open WebSockets to third-party or user-influenced URLs.
- Upgrade to undici v6.24.0+ or v7.24.0+ and redeploy.
- Ensure process managers and orchestration liveness/restart policies recover crashed workers.
- Alert on uncaught TypeError crashes on WebSocket client paths until the fleet is patched.
The record
ImpactA server can reply with a WebSocket frame using the 64-bit length form and an extremely large length. undici's ByteParser overflows internal math, ends up in an invalid state, and throws a fatal TypeError that terminates the process. Patches Patched in the undici version v7.24.0 and v6.24.0. Users should upgrade to this version or later.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| npm | undici | 6.0.0 | 6.24.0 |
| npm | undici | 7.0.0 | 7.24.0 |
| Chainguard | code-server | 0 | 4.110.1-r2 |
| Chainguard | jitsucom-jitsu-console | 0 | 2.11.0-r17 |
| Chainguard | jitsucom-jitsu-rotor | 0 | 2.11.0-r17 |
| Chainguard | kibana-8.17 | 0 | 8.17.10-r13 |
| Chainguard | kibana-8.17-bitnami | 0 | 8.17.10-r13 |
| Chainguard | kibana-8.17-iamguarded | 0 | 8.17.10-r13 |
| Chainguard | kibana-8.18 | 0 | 8.18.8-r11 |
| Chainguard | kibana-8.18-bitnami | 0 | 8.18.8-r11 |
| Chainguard | kibana-8.18-iamguarded | 0 | 8.18.8-r11 |
| Chainguard | kibana-8.19 | 0 | 8.19.13-r4 |
| Chainguard | kibana-8.19-bitnami | 0 | 8.19.13-r4 |
| Chainguard | kibana-8.19-iamguarded | 0 | 8.19.13-r4 |
| Chainguard | kibana-9.0 | 0 | 9.0.8-r14 |
| Chainguard | kibana-9.0-bitnami | 0 | 9.0.8-r14 |
| Chainguard | kibana-9.0-iamguarded | 0 | 9.0.8-r14 |
| Chainguard | kibana-9.1 | 0 | 9.1.10-r7 |
| Chainguard | kibana-9.1-iamguarded | 0 | 9.1.10-r7 |
| Chainguard | kibana-9.2 | 0 | 9.2.7-r0 |
| Chainguard | kibana-9.2-iamguarded | 0 | 9.2.6-r3 |
| Chainguard | kibana-9.3 | 0 | 9.3.2-r0 |
| Chainguard | kibana-9.3-iamguarded | 0 | 9.3.2-r0 |
| Chainguard | pelias-api | 0 | 7.6.0-r4 |
| Chainguard | renovate | 0 | 43.84.0-r1 |
| Wolfi | code-server | 0 | 4.110.1-r2 |
| Wolfi | jitsucom-jitsu-console | 0 | 2.11.0-r17 |
| Wolfi | jitsucom-jitsu-rotor | 0 | 2.11.0-r17 |
| Wolfi | renovate | 0 | 43.84.0-r1 |
Related vulnerabilities
- GHSA-f269-vfmq-vjvj Undici: Malicious WebSocket 64-bit length overflows parser and crashes the client Same vulnerability
- GHSA-g8m3-5g58-fq7m undici vulnerable to Set-Cookie SameSite attribute downgrade via permissive substring… Also affects undici
- GHSA-vxpw-j846-p89q undici WebSocket client vulnerable to denial of service via fragment count bypass Also affects undici
- GHSA-p88m-4jfj-68fv undici vulnerable to HTTP header injection via Set-Cookie percent-decoding Also affects undici
- GHSA-hm92-r4w5-c3mj undici vulnerable to cross-origin request routing via SOCKS5 proxy pool reuse Also affects undici
- GHSA-35p6-xmwp-9g52 undici vulnerable to HTTP response queue poisoning via keep-alive socket reuse Also affects undici
- GHSA-vmh5-mc38-953g undici vulnerable to TLS certificate validation bypass via dropped requestTls in SOCKS5… Also affects undici
- GHSA-pr7r-676h-xcf6 undici vulnerable to cross-user information disclosure via shared cache whitespace bypass Also affects undici