Ad · Leaderboard 728×90

CVE-2026-87018

7.5High

Published 15 Oct 2026 · NVD status: Undergoing Analysis · AI triage by gemini-3.8-flash

7.5High
Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None
Impact
High impact on availability
Weakness
CWE-248, CWE-617

Impact

A malicious or compromised remote HTTPS server can crash your Node.js process by initiating a TLS 1.2 renegotiation with a mismatched certificate. This triggers an uncaught assertion that takes down all in-flight requests and services running in that process.

Root cause

Undici's socket error handler incorrectly asserts that certificate-altname errors cannot occur on an established connection, causing an unhandled crash when Node.js destroys the socket during TLS renegotiation.

Affected systems

undici 4.2.1 through 6.29.0, 7.0.0 through 7.30.0, and 8.0.0 through 8.12.1

CVSS v3.1 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Fix & remediation

Upgrade undici to 6.29.1, 7.30.1, or 8.12.2 or later depending on your major release. If you cannot patch immediately, restrict outbound TLS connections to TLS 1.3 only (e.g., set minVersion: 'TLSv1.3') to prevent server-initiated renegotiation.

shell
$ npm install undici@latest

AI-suggested. Run it in staging first and check it against the vendor advisory. Why?

Ad · In-content banner

NVD description

undici is an HTTP client library for Node.js. In versions 4.2.1 through 6.29.0, 7.0.0 through 7.30.0, and 8.0.0 through 8.12.1, the client process crashes when a TLS 1.2 server renegotiates after the connection is established and presents a different, CA-trusted certificate whose hostname does not match the requested host. Node.js re-runs hostname verification on the renegotiated handshake and destroys the socket with a certificate-altname error, but undici's established-socket error handler asserted that this error code could never occur, so the peer-controlled error became an uncaught assertion that terminates the Node.js process, affecting both the HTTP/1.1 and HTTP/2 paths. A malicious or compromised HTTPS endpoint reached through undici or the global fetch() can crash the client with a single server-initiated renegotiation, taking down all in-flight requests and background work in the process, and exploitation needs no CA compromise because the attacker controls the endpoint and can present two ordinary valid certificates. Only TLS 1.2 is affected, since TLS 1.3 does not support renegotiation. The issue is fixed in undici 6.29.1, 7.30.1, and 8.12.2, and users should upgrade to one of those versions or later. As a workaround, restrict outbound connections to TLS 1.3 so renegotiation cannot occur, when the target endpoints support it.

References

Source: nvd.nist.gov/vuln/detail/CVE-2026-87018

Ad · Sticky 320×50 / 728×90