---
id: "CVE-2026-116137"
kind: "vulnerability"
aliases: ["CVE-2026-116137"]
title: "adm-zip: duplicate-entry check bypass lets crafted ZIPs overwrite validated files"
severity: "medium"
cvss: 6.3
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["adm-zip", "javascript", "node", "package"]
not_affected_if: ["trusted-archives-only"]
published_at: "2026-10-25T12:16:30+00:00"
first_seen_at: "2026-10-25T12:40:44+00:00"
updated_at: "2026-10-25T12:41:29+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-116137", "first_seen_at": "2026-10-25T12:40:44+00:00"}]
---

# adm-zip: duplicate-entry check bypass lets crafted ZIPs overwrite validated files

adm-zip through 0.6.1 checks duplicate ZIP entries by exact name, so names like './hello.txt' and 'hello.txt' pass as distinct. An attacker can craft an archive where getEntry() or readAsText() returns benign content while extractAllTo() writes different content to the same path.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Run `npm ls adm-zip` in each project to find installed versions and any transitive copies.
- Look for adm-zip in package.json and lockfiles, and check whether the code calls extractAllTo() on archives from untrusted sources.

## Fix

- Upgrade adm-zip to a version later than `0.6.1`; the sources do not name the patched version.
- Until patched, validate and reject archives with duplicate or canonically equivalent entry names before extraction, or extract with a separate tool.

## Timeline

- 2026-10-25T12:40:44+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-116137

## From the sources

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.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
