Skip to main content

adm-zip EUVDEUVD-2026-106905

| CVE-2026-114102 HIGH
Uncaught Exception (CWE-248)
2026-10-21 VulnCheck GHSA-f9g8-qp78-x5c2
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Submit malformed ZIP to async API
  2. Exploit
    Corrupted DEFLATE emits zlib error event
  3. Execution
    Unhandled error rethrown as uncaught exception
  4. Impact
    Node.js process crashes, all requests dropped

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Exception handling completeness
Exploitation Conditions

Exploitation requires that the target application call one of adm-zip's asynchronous decompression APIs - readFileAsync, readAsTextAsync, extractAllToAsync, or ZipEntry.getDataAsync - on an attacker-supplied ZIP file, on a vulnerable version (<= 0.6.0). The specific triggering condition is any DEFLATE-compressed entry whose bytes are corrupted (producing Z_DATA_ERROR) or whose inflated size exceeds the declared central-directory size (tripping the maxOutputLength guard), because inflateAsync in methods/inflater.js registers no 'error' listener on the zlib.createInflateRaw stream. LIMITING FACTORS: the synchronous decompression APIs are NOT affected (their throws are catchable, per the earlier CVE-2026-39244 fix), so applications using only sync methods are not exposed; exploitation is confined to availability (process crash) with no data exposure or code execution, and the application must actually process untrusted ZIP input through the async path.

Impact

This is a genuinely high-priority availability issue for exposed deployments, though its real-world impact is narrower than the 8.7 CVSS 4.0 score suggests in isolation. The vector (CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H) confirms remote, unauthenticated, low-complexity exploitation with no user interaction and high availability impact but zero confidentiality or integrity impact - consistent with CWE-248 (uncaught exception). The severity is real because a single malformed ZIP crashes the entire Node.js process, terminating all in-flight requests, and the crash is uncatchable by try/catch (the error surfaces asynchronously from the zlib C++ binding on a later tick). However, no EPSS score, KEV listing, or explicit public exploit code is present in the provided data, so there is no evidence of active exploitation - this is a prioritize-and-patch issue, not an emergency incident response. The GHSA advisory notes the trigger requires 'no special crafting' (any corrupted DEFLATE stream suffices), which raises practical likelihood for any service that ingests untrusted ZIPs. Net: the high score is justified for impact and ease, but exploitation signals are absent and the blast radius is scoped to availability only.

Exploit ScenarioDerived

An attacker uploads or submits a single ZIP file containing a DEFLATE entry with corrupted compressed bytes to a web service that processes it via adm-zip's async API (e.g., readFileAsync or extractAllToAsync). When the stream emits a Z_DATA_ERROR with no error listener attached, Node.js rethrows it as an uncaught exception on a later tick, crashing the whole process and dropping every concurrent request. No authentication, user interaction, or exploit tooling is required; the advisory confirms no special crafting is needed, though no packaged public PoC is cited in the provided data.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 21, 2026

Denial of service in adm-zip 0.6.0 and earlier lets remote attackers terminate the entire Node.js host process by submitting a single malformed ZIP file to any of the library's asynchronous decompression APIs. The flaw sits in inflateAsync (methods/inflater.js), which pipes attacker-controlled DEFLATE bytes into a zlib.createInflateRaw stream without registering an 'error' listener, so a corrupted stream or an over-large inflation surfaces as an uncatchable uncaught exception that kills the process and every in-flight request with it. Only applications that call readFileAsync, readAsTextAsync, extractAllToAsync, or ZipEntry.getDataAsync on untrusted input on versions <= 0.6.0 are exposed; the synchronous APIs are unaffected, and there is no data disclosure or code execution - impact is availability only. No public exploit code was identified at the time of analysis, and the issue is not listed in CISA KEV.

RemediationAI

Upgrade adm-zip to 0.6.1 or later, which adds the missing 'error' listener in inflateAsync; the fix is contained in commit https://github.com/cthackers/adm-zip/commit/5e70d3a26097d68fa981c41f022c053117174e49 and is documented in GHSA-8238-w5pm-2374. Where an immediate upgrade is not possible, the most effective compensating control is to move all untrusted archive decompression onto the synchronous APIs (readFile, readAsText, extractAllTo), whose zlib throws are catchable and can be wrapped in try/catch - the trade-off is loss of async concurrency and higher event-loop blocking under large archives. Alternatively, run decompression in a dedicated child process or worker thread that the parent can restart on abnormal exit, or isolate the parsing service in a container with a restart policy behind a queue, accepting the per-crash latency and dropped in-flight work. Note that a try/catch around the async API calls does not help, and a process-level 'uncaughtException' handler is only a last-resort stopgap: it can leave the process in an inconsistent state, so the recommended handling there is to log and immediately restart. Defense-in-depth measures such as capping upload sizes, rejecting archives whose declared entry sizes are implausible, and rate-limiting archive submissions reduce trigger frequency but do not remove the defect, since trivially corrupted DEFLATE data is enough to trigger it.

Affected VersionsENISA

adm-zip 0 <0.6.1

Affected Packages

npm adm-zip fix: 0.6.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

adm-zip is a widely used pure-JavaScript npm library for reading and writing ZIP archives in Node.js. The vulnerability class is CWE-248 (Uncaught Exception), rooted in Node.js EventEmitter/stream semantics rather than in ZIP parsing logic itself. inflateAsync creates a zlib.createInflateRaw(option) transform stream, attaches 'data' and 'end' handlers, and calls tmp.end(inbuf) - but never calls tmp.on('error', ...). When the zlib C++ binding emits an 'error' event on a stream with zero listeners, Node.js rethrows it as an uncaught exception on a later tick. Because the throw occurs asynchronously, outside the call stack that any try/catch around the caller covers, the exception escapes to the process level and terminates the Node.js runtime. Two independent triggers exist: a DEFLATE entry with corrupted or malformed compressed bytes producing Z_DATA_ERROR, or compressed data whose inflated size exceeds the size declared in the central directory, which trips the maxOutputLength guard added by the earlier fix for CVE-2026-39244 (GHSA-xcpc-8h2w-3j85). That prior patch hardened the synchronous path - where the resulting throw is naturally catchable - and the async path inherited the same maxOutputLength option (methods/inflater.js line 5) but received no stream error handling, leaving it exploitable. The tainted code path is reached from zipEntry.js and adm-zip.js entry points readFileAsync, readAsTextAsync, extractAllToAsync and getDataAsync. CPE cpe:2.3:a:cthackers:adm-zip confirms the cthackers upstream package as the affected artifact.

Know when Node.js gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Remote unauthenticated attacker sends a malformed ZIP with no user interaction (AV:N/AC:L/PR:N/UI:N); impact is a full process crash, so A:H with no C/I impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 21, 2026 - 02:01 EUVD
CVE Published
Oct 21, 2026 - 00:37 cve.org
HIGH 8.7

DescriptionCVE.org

adm-zip before 0.6.1 contains a denial of service vulnerability that allows unauthenticated attackers to crash the Node.js process via a malformed ZIP file, because inflateAsync in methods/inflater.js lacks a zlib stream error listener. Attackers can supply a ZIP with corrupted DEFLATE data processed by readFileAsync, readAsTextAsync, extractAllToAsync, or getDataAsync, triggering an uncatchable exception that terminates all in-flight requests.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 4,747 npm packages depend on adm-zip (704 direct, 4,072 indirect)

Ecosystem-wide dependent count for version 0.6.1.

Technical POC Analysis

CWE-248 (Uncaught Exception) in adm-zip's async inflater.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

adm-zip 0.6.0 and earlier can allow a single malformed ZIP file submitted to asynchronous decompression APIs to terminate the entire Node.js host process, disrupting every in-flight request handled by that service. The exposure is availability-only and limited to applications that process untrusted ZIPs through readFileAsync, readAsTextAsync, extractAllToAsync, or ZipEntry.getDataAsync; no data disclosure or code execution is involved. No public exploit identified at time of analysis, and the issue is not listed in CISA KEV, but with no vendor patch available, leadership should treat any externally reachable upload or decompression path using these APIs as a high-priority service-continuity risk.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Isolate affected asynchronous ZIP decompression in worker processes or containers with restart and resource limits, enforce upload and decompressed-size/compression-ratio caps, validate and reject malformed ZIP archives before processing, avoid readFileAsync, readAsTextAsync, extractAllToAsync, and ZipEntry.getDataAsync on untrusted input, and monitor for process crashes or restarts.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
High
adm-zip is a very widely used npm ZIP library in Node.js apps
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

Related Vulnerabilities in adm-zip ZIP Processing Vulnerabilities

View all 4
CVE-2025-68613 HIGH POC
8.8 Dec 19

Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy