CVE Catalog

CVE-2026-102282

HighCVSS 7.1
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.15%

4th percentile - higher than 4% of all known CVEs

Summary

adm-zip prior to 0.6.1 applies Unix permission bits from a zip entry directly to the extracted file via fs.chmodSync() when keepOriginalPermission=true is passed to extractAllTo()/extractEntryTo() — and never filters out setuid/setgid/sticky bits. A crafted zip can produce an extracted binary with mode 04755, leading to attacker code execution as root when extraction runs as root.

Risk Assessment

An attacker can supply a crafted ZIP archive that, when extracted as root, creates a setuid file, enabling later execution of attacker code with root privileges by a lesser-privileged user. In Docker, CI, and privileged install environments, the privilege escalation risk is critical.

Recommendation

Update adm-zip to version 0.6.1. Until then, avoid using keepOriginalPermission=true or filter out setuid/setgid/sticky bits before extraction.

Other vulnerabilities in adm-zip

See all
Original NVD description (English source)

adm-zip is a JavaScript library for creating and extracting ZIP archives in Node.js. Prior to 0.6.1, adm-zip applies the Unix permission bits stored in a zip entry directly to the extracted file via `fs.chmodSync()` when `keepOriginalPermission=true` is passed to `extractAllTo()`/`extractEntryTo()` — and it never filters the setuid/setgid/sticky bits out of those bits. A zip crafted by an attacker can therefore produce an extracted binary with mode `04755`. When extraction runs as root (the default posture in Docker builds, CI runners, and privileged install steps — the exact environments where this flag is used), the resulting root-owned setuid file is executed later by a lesser-privileged user, turning the attacker's code into a root execution. Version 0.6.1 fixes the issue.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS