adm-zip: Validation bypass through duplicate ZIP entry names
Summary
The adm-zip Node.js library before 0.6.1 resolves duplicate entry names inconsistently: getEntry() returns the last duplicate while extractAllTo() writes the first. An attacker can supply a crafted ZIP archive so that content validated through getEntry() differs from the bytes written to disk. This requires an application that validates an archive entry and then extracts the archive from an untrusted source; the CISA SSVC assessment rates automatable as no and exploitation as proof-of-concept only.
Affected
- adm-zip versions before 0.6.1 (GitHub advisory: <= 0.6.0)
Fixed in
- Upgrade to adm-zip 0.6.1 or later
Workaround
- Upgrading to 0.6.1 or later is the fix; no other vendor workaround is documented.
- Interim measure (recommendation of the tracker, not from the vendor): reject archives with duplicate entry names before validation or extraction, and validate extracted files on disk rather than through getEntry().
- After upgrading, test uploads and imports, because 0.6.1 rejects archives with duplicate entry names and this has broken some workflows.
Exploitation
- Exploitation: proof of concept available (CISA SSVC).
- Automatable: no (CISA SSVC).
- Known exploited: Unknown.
Our recommendation
- Identify all systems and projects using adm-zip, including transitive npm dependencies.
- Upgrade to adm-zip 0.6.1 or later and test archive upload and import functions afterwards.
- Until the upgrade is done, reject ZIP archives with duplicate entry names and do not rely on getEntry() checks alone.
- Note: the severity differs between sources (CVSS v4.0 8.2 in the CVE record; CVSS v3.1 5.9 in the GitHub advisory); plan around the integrity risk.
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- GitHub Security Advisory GHSA-p634-w6r4-rjp2 github.com
- VulnCheck advisory: adm-zip before 0.6.1 Duplicate ZIP Entry Name Validation Bypass www.vulncheck.com
- GitLab advisory GHSA-p634-w6r4-rjp2 (npm adm-zip) advisories.gitlab.com
- OSV GHSA-p634-w6r4-rjp2 osv.dev
- Upgrade caveat: duplicate entry rejection in werkyn pull request 75 github.com
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 1 Nov 2026, 15:21.
Original description (NVD)
adm-zip before 0.6.1 contains an inconsistent entry resolution vulnerability that allows attackers to bypass content validation by supplying ZIP archives with duplicate entry names. Attackers can craft archives where getEntry() returns the last duplicate while extractAllTo() writes the first, causing unvalidated bytes to be written to disk.
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
