Description
undici is an HTTP client library for Node.js. In versions 8.11.0 and 8.11.1, its experimental WebSocket client, which is enabled by default when HTTP/2 is allowed, mishandles a failed WebSocket handshake over HTTP/2: the request is already marked completed, so the abort becomes a no-op and the underlying HTTP/2 stream is left open with no error listener. When a malicious server then destroys the connection, the orphaned stream emits an unhandled error and the Node.js process exits. A remote, unauthenticated server can therefore crash any client that opens a WebSocket to it over HTTP/2, resulting in a denial of service. The issue is fixed in undici 8.11.2, and users should upgrade to 8.11.2 or later. As a workaround, set allowH2 to false to disable HTTP/2 for WebSocket connections, or avoid opening WebSocket connections to untrusted servers.
Published: 2026-10-15
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Immediate Patch
AI Analysis

Impact

The undici HTTP client library’s experimental WebSocket client (CWE-248, CWE-754) mishandles a failed WebSocket handshake over HTTP/2. When the handshake fails, the library marks the request as completed but does not terminate the underlying HTTP/2 stream; the stream remains open without an error listener. If a malicious server then drops the connection, the orphaned stream emits an unhandled exception that causes the Node.js process to terminate, resulting in a denial of service for any application that opens a WebSocket over HTTP/2.

Affected Systems

undici v8.11.0 and v8.11.1 are affected. Any Node.js application that imports undici and uses its experimental WebSocket client, especially when HTTP/2 is enabled by default and connects to untrusted servers, is impacted. The fix is available in undici v8.11.2 and later.

Risk and Exploitability

The CVSS score of 7.5 indicates high severity with significant availability impact. The EPSS score is less than 1%, indicating a very low but non‑zero likelihood of wild exploitation. The vulnerability is not listed in the CISA KEV catalog. A remote, unauthenticated attacker can exploit the flaw by initiating a failed WebSocket handshake over HTTP/2 with a malicious server that subsequently closes the connection, forcing the client process to crash without requiring any local privileges or authentication.

Generated by OpenCVE AI on October 17, 2026 at 11:35 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade undici to version 8.11.2 or later in all Node.js projects that use its experimental WebSocket client.
  • Disable HTTP/2 for WebSocket connections by setting allowH2 to false in the library’s configuration.
  • Avoid opening WebSocket connections to untrusted servers to minimize the risk of triggering the denial of service.

Generated by OpenCVE AI on October 17, 2026 at 11:35 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-qq8j-7v2v-3rwp undici WebSocket client vulnerable to Denial of Service via failed HTTP/2 handshake
History

Mon, 19 Oct 2026 21:00: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, 17 Oct 2026 09:30:00 +0000

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

Thu, 15 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Thu, 15 Oct 2026 13:30:00 +0000

Type Values Removed Values Added
Description undici is an HTTP client library for Node.js. In versions 8.11.0 and 8.11.1, its experimental WebSocket client, which is enabled by default when HTTP/2 is allowed, mishandles a failed WebSocket handshake over HTTP/2: the request is already marked completed, so the abort becomes a no-op and the underlying HTTP/2 stream is left open with no error listener. When a malicious server then destroys the connection, the orphaned stream emits an unhandled error and the Node.js process exits. A remote, unauthenticated server can therefore crash any client that opens a WebSocket to it over HTTP/2, resulting in a denial of service. The issue is fixed in undici 8.11.2, and users should upgrade to 8.11.2 or later. As a workaround, set allowH2 to false to disable HTTP/2 for WebSocket connections, or avoid opening WebSocket connections to untrusted servers.
Title undici WebSocket client vulnerable to Denial of Service via failed HTTP/2 handshake
Weaknesses CWE-248
CWE-754
References
Metrics threat_severity

None

cvssV3_1

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

threat_severity

Important


cve-icon MITRE

Status: PUBLISHED

Assigner: openjs

Published:

Updated: 2026-10-15T14:22:28.644Z

Reserved: 2026-10-13T07:28:59.621Z

Link: CVE-2026-109855

cve-icon Vulnrichment

Updated: 2026-10-15T14:22:23.478Z

cve-icon NVD

Status : Analyzed

Published: 2026-10-15T09:17:16.573

Modified: 2026-10-19T20:46:49.400

Link: CVE-2026-109855

cve-icon Redhat

Severity : Important

Publid Date: 2026-10-15T08:12:51Z

Links: CVE-2026-109855 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-17T11:45:06Z

Weaknesses
  • CWE-248

    Uncaught Exception

  • CWE-754

    Improper Check for Unusual or Exceptional Conditions