CVE-2026-116137

adm-zip through 0.6.1 Duplicate-Entry Validation Bypass via Canonically Equivalent Names

Published Oct 25, 2026 CVSS 4.0 · 6.3 Medium EPSS < 1% KEV · Not listed
Description
adm-zip through 0.6.1 contains a duplicate-entry validation bypass that allows attackers to evade the readEntries() check by using canonically equivalent entry names like './hello.txt' and 'hello.txt'. Attackers can craft ZIP archives where getEntry() or readAsText() validates benign content while extractAllTo() writes malicious content to the same path, bypassing integrity checks.

Analysis

AI-generated

Technical impact

The adm‑zip library up to 0.6.1 performs duplicate‑entry checks during entry inspection but the extraction routine writes files based only on the entry name. An attacker can include entries with canonically equivalent names, such as “./hello.txt” and “hello.txt”. The library will consider only one entry during validation, while the extraction writes both, allowing malicious content to replace or overwrite files that were presumed safe. This results in integrity compromise and the potential insertion of malicious files while the application believes only benign content was processed.

Affected Systems

The issue affects the cthackers:adm‑zip package, specifically all releases v0.6.1 and earlier. Any Node.js application that imports this library and uses functions such as getEntry(), readAsText(), readEntries(), or extractAllTo() to process ZIP archives is vulnerable. The flaw does not require privileged execution and is exploitable against any deployment that accepts external ZIP files, including web services, file upload endpoints, or import utilities.

Risk and Exploitability

The CVSS score of 6.3 indicates a moderate severity vulnerability. EPSS is not available and the flaw is not listed in the CISA KEV catalog, suggesting current exploitation activity is low. The primary attack vector is the ingestion of a crafted ZIP archive from an untrusted source; only a basic validation check is performed before extraction, so the vulnerability can be exploited if the application uses extractAllTo after a duplicate entry check. Success does not require additional privileges, but it can lead to persistent malicious files being written to the file system.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade adm‑zip to the latest release (0.6.2 or newer) where the duplicate‑entry validation bug has been fixed.
  • If an upgrade is not immediately possible, add a pre‑extraction validation step that normalizes each entry name (e.g., resolves leading "./", removes redundant path segments) and rejects archives that contain multiple entries that normalize to the same target path.
  • Restrict extraction to trusted ZIP files only, and apply strict path sanitization to prevent path traversal; do not allow extraction into arbitrary directories without verifying the canonical target path.
  • Avoid calling extractAllTo right after a getEntry or readAsText validation; instead, perform a full duplicate name check or switch to a more secure ZIP processing library that correctly handles duplicate entries.

Generated by OpenCVE AI on October 26, 2026 at 01:29 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Cthackers
Cthackers adm-zip
Vendors & Products Cthackers
Cthackers adm-zip
Type Values Removed Values Added
Description adm-zip through 0.6.1 contains a duplicate-entry validation bypass that allows attackers to evade the readEntries() check by using canonically equivalent entry names like './hello.txt' and 'hello.txt'. Attackers can craft ZIP archives where getEntry() or readAsText() validates benign content while extractAllTo() writes malicious content to the same path, bypassing integrity checks.
Title adm-zip through 0.6.1 Duplicate-Entry Validation Bypass via Canonically Equivalent Names
First Time appeared Adm-zip Project
Adm-zip Project adm-zip
Weaknesses CWE-436
CPEs cpe:2.3:a:adm-zip_project:adm-zip:*:*:*:*:*:*:*:*
Vendors & Products Adm-zip Project
Adm-zip Project adm-zip
References
Metrics cvssV3_1

{'score': 3.7, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N'}

cvssV4_0

{'score': 6.3, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N'}

Weaknesses
  • CWE-41

    Improper Resolution of Path Equivalence

  • CWE-436

    Interpretation Conflict

Sources

Status
PUBLISHED
Assigner
VulnCheck
Published
Updated
Nov 9, 2026, 7:42 PM
Reserved
Oct 25, 2026, 11:15 AM
Status
Deferred
Published
Oct 25, 2026, 12:16 PM
Modified
Oct 29, 2026, 5:18 PM
Severity
Low
Public date
Oct 25, 2026, 11:51 AM