ZeroHour

CVE-2026-87776

mass

Unauthenticated DoS via zlib memory leak in Node.js/Express compression middleware

CVSS 3.1
7.5 high
EPSS
Published
()
Modified
AI analysis

CVE-2026-87776 is a memory leak (CWE-401, CWE-459) in the compression middleware for Node.js and Express: when a client aborts the connection while a compressed response is still being sent, the zlib stream created to compress that response is never destroyed, so its native memory is never freed. A remote, unauthenticated attacker triggers the flaw simply by repeatedly opening requests and disconnecting early, with each aborted compressed response leaking native zlib memory. The attacker gains a denial of service, because the leaked memory accumulates until the server exhausts available memory and crashes; there is no confidentiality or confidentiality-adjacent impact (CVSS availability-only, A:H). All applications using the compression middleware in versions before 1.8.2 are affected. There is no public proof of concept, the flaw is not in the CISA KEV catalog, and no exploitation is currently known.

What to do: Upgrade the compression package to version 1.8.2 or later and verify the resolved version in your lockfile and dependency tree. Where upgrading is not immediately possible, reduce exposure by rate-limiting or monitoring for repeated early client disconnects, placing buffering proxies in front of the Node server, and alerting on rising process memory usage as an early indicator of exploitation.

Affected
compression maintainers (Node.js/Express middleware) compression (npm package)all versions before 1.8.2 (< 1.8.2)
Estimated exposure
masslikely hundreds of thousands of Node.js/Express deployments (compression middleware sees millions of weekly npm downloads) — Estimated from the compression package's millions of weekly npm downloads and its status as one of the most widely used Express middlewares, though only a subset of those deployments are internet-exposed servers accepting client-driven…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

compression is a Node.js and Express compression middleware. In versions before 1.8.2, when a client aborts the connection while a compressed response is still being sent, the zlib stream created to compress that response is never destroyed, so each aborted compressed response leaks its native zlib memory. A remote unauthenticated attacker can repeatedly open requests and disconnect early, exhausting the available memory and crashing the server. All applications using compression are affected. The issue is fixed in compression 1.8.2, and users should upgrade to 1.8.2 or later.

Weakness
CWE-401, CWE-459
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

In the news

No ingested article mentions this CVE yet.