CVE Catalog

CVE-2026-87029

MediumCVSS 5.9
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.25%

15th percentile - higher than 15% of all known CVEs

Summary

undici is an HTTP client library for Node.js. In versions 7.15.0 through 7.30.0 and 8.0.0 through 8.12.1, its decompress interceptor forwards decompressed response data to the downstream handler from zlib stream event callbacks without catching exceptions those callbacks may throw. When a downstream handler throws asynchronously from a zlib callback, it escapes as an uncaught exception that terminates the Node.js process. A malicious HTTP server can send a small compressed body that decompresses to more than the configured limit, crashing the client.

Risk Assessment

An attacker can remotely crash the Node.js process on the client, leading to denial of service. This requires the client to use the decompress interceptor with a handler that throws when a limit is exceeded.

Recommendation

Update undici to version 7.30.1 or 8.12.2 (or later). As a workaround, avoid composing the decompress interceptor with a response handler that throws during response processing.

Other vulnerabilities in undici

See all
Original NVD description (English source)

undici is an HTTP client library for Node.js. In versions 7.15.0 through 7.30.0 and 8.0.0 through 8.12.1, its decompress interceptor forwards decompressed response data to the downstream handler from zlib stream event callbacks without catching exceptions those callbacks may throw, and while undici's engine converts a synchronous throw from a downstream handler into a per-request failure, that protection is absent when the throw happens asynchronously from a zlib callback. As a result, a downstream handler that throws by design, such as the built-in dump interceptor which throws when a response exceeds its configured maximum size, escapes as an uncaught exception that terminates the Node.js process. A malicious or compromised HTTP server can crash any client that composes the decompress interceptor with such a handler by returning a small compressed body that decompresses to more than the configured limit, so only the decompressed size matters and the bytes on the wire stay tiny. The issue is fixed in undici 7.30.1 and 8.12.2, and users should upgrade to one of those versions or later. As a workaround, avoid composing the decompress interceptor with a response handler that throws during response processing until upgrading.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS