CVE-2026-114102: adm-zip unhandled exception in async DEFLATE decompression

CVE-2026-114102 · Severity: high · CVSS 7.5 · Published 2026-10-21

adm-zip is a Node.js library for reading and writing ZIP files, commonly used in web applications and services that process user-uploaded archives. An unauthenticated attacker can crash the entire Node.js process—and all requests being handled by it—by uploading a single malformed ZIP file, causing a complete denial of service affecting all users on that server instance.

Vendors: Cthackers.

Quick answers

Is CVE-2026-114102 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-114102 being exploited in the wild.
How severe is CVE-2026-114102?
High severity, with a CVSS score of 7.5, published 21 October 2026.
Which products and versions are affected?
Cthackers Adm-Zip before 0.6.1.
Is there a fix for CVE-2026-114102?
Yes: fixed in 0.6.1. Until then: Do not process untrusted ZIP files via the async decompression APIs (readFileAsync, readAsTextAsync, extractAllToAsync, getDataAsync) until upgraded. If async processing is required for performance, validate ZIP structure and compressed data integrity before decompression, or isolate ZIP processing to a separate worker process. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-114102 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-114102?
Check whether you run Cthackers Adm-Zip at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • Fixed in: 0.6.1

Do not process untrusted ZIP files via the async decompression APIs (readFileAsync, readAsTextAsync, extractAllToAsync, getDataAsync) until upgraded. If async processing is required for performance, validate ZIP structure and compressed data integrity before decompression, or isolate ZIP processing to a separate worker process.

Technical details

The inflateAsync function in methods/inflater.js creates a zlib.createInflateRaw() stream to decompress ZIP entries but fails to attach an "error" event listener. When the stream encounters corrupted DEFLATE data or hits the maxOutputLength limit, it emits an unhandled error event, which Node.js rethrows as an uncaught exception outside the try/catch scope of the caller. This affects all async decompression APIs: readFileAsync, readAsTextAsync, extractAllToAsync, and getDataAsync.

Affected products

  • cthackers adm-zip before 0.6.1

Timeline

  • 2026-10-21: disclosed
  • 2026-09-11: advisory: GitHub Security Advisory GHSA-8238-w5pm-2374 published

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.