CVE-2026-84890: undici vulnerable to Denial of Service via unbounded decompression of compressed responses

Published Sep 4, 2026
·
Updated

Impact

The interceptors.decompress() interceptor decompresses HTTP response bodies according to the untrusted Content-Encoding header. The number of decompression layers is capped at 5, but the total decompressed output size is not bounded and there is no option to limit it. A malicious or faulty upstream can return a small compressed payload (a compression bomb) that expands to hundreds of megabytes or gigabytes in client memory, exhausting memory and causing the Node.js process to crash or become unresponsive. Any application using the decompress interceptor to read responses from untrusted or compromised upstreams is affected.

Patches

Upgrade to 7.29.1 or 8.10.2. The interceptor now accepts a maxSize option (default 64 MiB) and rejects responses whose decompressed output exceeds it with a ResponseExceededMaxSizeError.

Workarounds

Once upgraded, set a conservative maxSize on the interceptor. Before upgrading, avoid using interceptors.decompress() with untrusted upstreams, or apply a custom interceptor that enforces a decompressed output size limit.

Other sources

undici's decompress interceptor decompresses response bodies according to the untrusted Content-Encoding header. While the number of content-encoding layers is capped, the total decompressed output size is unbounded and there is no configuration option to limit it. A malicious or faulty upstream can therefore return a small compressed payload, a compression bomb, that expands to hundreds of megabytes or more in client memory, an asymmetric resource consumption that can exhaust memory and crash the process. This affects undici versions from 7.15.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.

— MITRE

Affected Software

5 affected componentsFixes available
npm/undici>=7.15.0<=7.29.1, >=8.0.0<=8.10.2
Nodejs Undici Node.js>=7.15.0<7.29.1
Nodejs Undici Node.js>=8.0.0<8.10.2
npm/undici>=8.0.0<8.10.2
8.10.2
npm/undici>=7.15.0<7.29.1
7.29.1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade npm/undici to a version that resolves this vulnerability.

    Fixed in 8.10.2
  2. Upgrade

    Upgrade npm/undici to a version that resolves this vulnerability.

    Fixed in 7.29.1
  3. Upgrade

    Upgrade undici to a version that resolves this vulnerability.

    Fixed in 7.29.1
  4. Upgrade

    Upgrade undici to a version that resolves this vulnerability.

    Fixed in 8.10.2
  5. Configuration

    Set the interceptor's maxSize option to a conservative decompressed-output limit; the option defaults to 64 MiB and rejects responses exceeding the limit.

    undici interceptors.decompress() maxSize = 64 MiB
  6. Compensating control

    Before upgrading, avoid using interceptors.decompress() with untrusted upstreams, or use a custom interceptor that enforces a decompressed output size limit.

Event History

Sep 4, 2026
CVE Published
via MITRE·05:04 PM
Data Sourced
via MITRE·05:04 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·06:18 PM
DescriptionSeverityWeaknessAffected Software
Sep 29, 2026
Advisory Published
via GitHub·06:20 PM
Data Sourced
via GitHub·06:20 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What must an attacker control to trigger the memory exhaustion?

An attacker, or a faulty upstream service, must be able to return a compressed HTTP response to the undici client with an untrusted Content-Encoding header. The compressed body can be small but expand to hundreds of megabytes or more during decompression, potentially crashing the process.

2

Is there a setting to cap the decompressed response size as an interim mitigation?

No. The decompress interceptor has no configuration option to limit the total decompressed output size. Although the number of content-encoding layers is capped, that cap does not bound the final decompressed size.

3

How can I determine whether a deployment is in the listed affected range?

Check the installed undici version. The supplied advisory lists versions from 7.15.0 through 7.29.1 and from 8.0.0 through 8.10.2 as affected; it also recommends upgrading to 7.29.1 or 8.10.2.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203