CVE-2026-109869
7.5HighPublished 15 Oct 2026 · NVD status: Undergoing Analysis · AI triage by gemini-3.8-flash
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
- Impact
- High impact on availability
- Weakness
- CWE-248, CWE-459
Impact
A remote unauthenticated server can crash your Node.js process by returning over five content codings and abruptly closing the connection. All it takes is your application making an outbound fetch() request to the attacker's server.
Root cause
The fetch implementation creates an internal response stream before rejecting excessive content codings, leaving an orphaned stream without an error listener that triggers an unhandled crash when the remote connection closes early.
Affected systems
undici 6.23.0 through 6.29.0, 7.18.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 release stream. There is no workaround.
$ npm install undici@latestAI-suggested. Run it in staging first and check it against the vendor advisory. Why?
NVD description
undici is an HTTP client library for Node.js. In versions 6.23.0 through 6.29.0, 7.18.0 through 7.30.0, and 8.0.0 through 8.12.1, its fetch() implementation crashes the Node.js process when a malicious server returns a response with more than five content codings and closes the connection before sending the body. undici rejects such responses because of a content-encoding limit, but it created the internal response stream before that check and returned without attaching an error listener or aborting the request, so the early close surfaces a content-length mismatch on the orphaned stream, which Node.js treats as an unhandled error and terminates the process. A remote, unauthenticated server can trigger this with a single response, even when the application correctly catches the fetch() rejection, resulting in a denial of service. 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. There is no workaround.