Description
undici's experimental WebSocketStream client crashes the whole Node.js process when a remote peer closes the TCP connection without a WebSocket close handshake. On an unclean close the internal socket-close handler calls abort on the writable stream unconditionally and discards the returned promise, but per the WHATWG Streams standard aborting a locked writable returns a promise that rejects with a TypeError. Because the application holds a writer on that writable, which is the only way to write, the rejection is never observed and Node's default unhandled-rejection behavior terminates the process. An untrusted server can therefore crash a client with a single abrupt disconnect, with no authentication and no application mistake. This affects undici versions from 7.0.0 up to 7.29.1 and from 8.0.0 up to 8.10.2. Users should upgrade to undici 7.29.1 or 8.10.2.
Published: 2026-09-04
Score: 5.9 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Patch Now
AI Analysis

Impact

The flaw exists in undici’s experimental WebSocketStream client. When a remote peer closes the TCP connection without issuing a WebSocket close handshake, the internal socket‑close handler unconditionally aborts the writable stream. Per the WHATWG Streams standard, aborting a locked writable returns a promise that rejects with a TypeError. Because the application holds the writer and never observes the rejection, Node’s default unhandled‑rejection policy terminates the process. An attacker controlling an untrusted server can therefore crash a client with a single abrupt disconnect, without authentication or any application error.

Affected Systems

Undici library versions 7.0.0 through 7.29.1 inclusive, and 8.0.0 through 8.10.2 inclusive, contain the vulnerable WebSocketStream implementation. Updating to undici 7.29.1 or 8.10.2 eliminates the error, as those releases correct the abort handling path.

Risk and Exploitability

The CVSS score of 5.9 signals moderate severity. No EPSS data is available and the vulnerability is not in the CISA KEV catalog, indicating limited public exploitation so far. The attack vector is remote: any untrusted WebSocket server can trigger an abrupt disconnect without a close handshake. No authentication or elevated privileges are required; the impact is a crash of the Node.js process, resulting in a denial of service for the affected application.

Generated by OpenCVE AI on September 5, 2026 at 01:51 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the undici package to version 7.29.1 or 8.10.2, which contains the fixed WebSocketStream abort logic.
  • If an immediate upgrade is not possible, add an uncaughtException or unhandledRejection handler in the Node.js application to log the error, restart the WebSocket client, or restart the process instead of letting the default termination occur.
  • Implement a health‑check or process supervisor (such as PM2, systemd, or Docker restart policies) to detect and recover from abrupt termination caused by an unclean close.

Generated by OpenCVE AI on September 5, 2026 at 01:51 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 15 Sep 2026 14:15:00 +0000

Type Values Removed Values Added
First Time appeared Nodejs
Nodejs undici
CPEs cpe:2.3:a:nodejs:undici:*:*:*:*:*:node.js:*:*
Vendors & Products Nodejs
Nodejs undici

Sat, 05 Sep 2026 22:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Sat, 05 Sep 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-390
References
Metrics threat_severity

None

threat_severity

Moderate


Fri, 04 Sep 2026 23:15:00 +0000

Type Values Removed Values Added
First Time appeared Undici
Undici undici
Vendors & Products Undici
Undici undici

Fri, 04 Sep 2026 16:45:00 +0000

Type Values Removed Values Added
Description undici's experimental WebSocketStream client crashes the whole Node.js process when a remote peer closes the TCP connection without a WebSocket close handshake. On an unclean close the internal socket-close handler calls abort on the writable stream unconditionally and discards the returned promise, but per the WHATWG Streams standard aborting a locked writable returns a promise that rejects with a TypeError. Because the application holds a writer on that writable, which is the only way to write, the rejection is never observed and Node's default unhandled-rejection behavior terminates the process. An untrusted server can therefore crash a client with a single abrupt disconnect, with no authentication and no application mistake. This affects undici versions from 7.0.0 up to 7.29.1 and from 8.0.0 up to 8.10.2. Users should upgrade to undici 7.29.1 or 8.10.2.
Title undici vulnerable to Denial of Service via WebSocketStream unclean close
Weaknesses CWE-248
CWE-754
References
Metrics cvssV3_1

{'score': 5.9, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H'}


cve-icon MITRE

Status: PUBLISHED

Assigner: openjs

Published:

Updated: 2026-09-04T19:30:14.192Z

Reserved: 2026-09-02T19:16:57.905Z

Link: CVE-2026-85014

cve-icon Vulnrichment

Updated: 2026-09-04T19:30:09.086Z

cve-icon NVD

Status : Analyzed

Published: 2026-09-04T17:17:02.470

Modified: 2026-09-15T14:09:06.380

Link: CVE-2026-85014

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-04T16:30:07Z

Links: CVE-2026-85014 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-05T02:00:13Z

Weaknesses
  • CWE-248

    Uncaught Exception

  • CWE-390

    Detection of Error Condition Without Action

  • CWE-754

    Improper Check for Unusual or Exceptional Conditions