Skip to main content

extract-zip EUVDEUVD-2026-60194

| CVE-2026-19693 HIGH
Path Traversal (CWE-22)
2026-08-17 22e2d327-25fe-45d7-9f0c-dcd23b7108df GHSA-7pqw-9j4j-h8q3
8.1
CVSS 3.1 · Vendor: 22e2d327-25fe-45d7-9f0c-dcd23b7108df
View

Attack ChainAIDerived

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

  1. Access
    Craft ZIP with symlink + duplicate-named regular file
  2. Delivery
    Deliver archive to target application or user
  3. Exploit
    Victim process invokes extract-zip extraction
  4. Execution
    Symlink entry passes parent-dir containment check and is planted
  5. Persist
    Regular file entry written through planted symlink
  6. Impact
    Attacker-controlled content lands outside destination directory

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the target environment uses the extract-zip npm package at version 2.0.1 or earlier to process a ZIP archive containing at minimum two entries: a symlink entry whose name passes the parent-directory containment check but whose target resolves outside the destination, followed by a regular file entry with the identical archive name. The victim application or user must initiate extraction (CVSS UI:R) - there is no zero-click path against extract-zip itself. On Unix-like systems (Linux, macOS), no special OS-level privileges are needed; symlink creation is available to any unprivileged user, and the write impact extends to any path writable by the extraction process. On default Windows installations without Developer Mode or SeCreateSymbolicLinkPrivilege enabled, symlink creation by unprivileged processes is blocked, which substantially limits exploitability. Exploitation is further constrained to the write permissions of the process invoking extract-zip - a process running as a low-privilege service account limits blast radius compared to one running as root or SYSTEM. Non-default configurations or specially crafted archives are always required; this flaw does not manifest with standard well-formed ZIP files.

Impact

The CVSS 3.1 base score of 8.1 (AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H) reflects a realistic threat model: the attack is network-delivered, requires no attacker-side privileges, and is mechanically straightforward once a crafted archive is constructed. The sole friction is UI:R - a user or automated process must invoke extraction. In practice, this is a low barrier in CI/CD pipelines, software updaters, file-upload processors, and Electron-based applications that unpack user-supplied content. No EPSS score was provided in the intelligence data; without it, exploitation probability cannot be quantified numerically, but the attack class is well-documented and tooling to craft malicious ZIPs is freely available. There is no CISA KEV listing and no confirmed POC, so this is not confirmed actively exploited. However, the technique is reliable and deterministic - unlike race-condition symlink attacks - which raises real-world risk above what a raw EPSS absence might suggest. On Windows hosts, symlink creation for unprivileged users requires Developer Mode or SeCreateSymbolicLinkPrivilege, which materially limits impact on default Windows deployments. Unix/Linux and macOS environments face unrestricted symlink traversal within the process's write permissions.

Exploit ScenarioDerived

An attacker crafts a ZIP archive with two entries sharing the same filename: the first is a symlink with a relative path that appears to remain within the destination (passing the parent-directory check) but whose target resolves to a sensitive out-of-bound path such as ~/.ssh/authorized_keys or a cron directory. The archive is delivered to a Node.js application - via a software update feed, a file upload endpoint, or a CI artifact download - and extract-zip is invoked to unpack it. extract-zip plants the symlink on the first entry, then writes the attacker-supplied file content through it on the second entry, depositing arbitrary data at the attacker-chosen target path with the privileges of the extraction process. No publicly released POC has been identified at time of analysis, but the technique is mechanically straightforward given established zip-slip research.

Monitor Track and reassess. Why: Vendor states no customer action required.
No patch listed yet 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 17, 2026

Arbitrary file write outside the extraction destination is possible in extract-zip 2.0.1 and earlier due to an incomplete symlink containment check that validates only the parent directory of each archive entry, not the entry's own final path component. An attacker who can supply a crafted ZIP archive - containing a symlink followed by a same-named regular file - causes extract-zip to plant the symlink during extraction and then write attacker-controlled content through it to any path writable by the process. No public exploit code and no CISA KEV listing are identified at time of analysis, but the attack primitive is a well-understood class (zip slip via symlink chain), lowering effective exploitation complexity for a motivated actor.

RemediationAI

No vendor-released patched version of extract-zip has been identified in the available intelligence data; references point only to the repository and npm listing without a tagged release or security advisory documenting a fix. Consumers should monitor https://github.com/max-mapper/extract-zip and https://www.npmjs.com/package/extract-zip for a patch release and upgrade immediately upon availability. As compensating controls until a patch is available: (1) Reject or sanitize archive entries before extraction by independently resolving every entry's full path (not just parent) against the destination root and aborting if any resolved path escapes - this adds preprocessing overhead but eliminates the flaw class. (2) Explicitly strip or refuse symlink entries from archives before passing them to extract-zip; most ZIP processing use cases do not require symlink preservation. (3) Run archive extraction in a sandboxed process (e.g., a container with a read-only root overlay and a scoped writable tmpfs for the destination) so that symlink traversal is confined to the sandbox even if exploitation succeeds - note this adds operational complexity and does not fix the underlying flaw. (4) If the application accepts ZIP uploads from end users, enforce server-side content validation to detect archives with duplicate entry names or symlink entries prior to extraction.

Affected VersionsENISA

extract-zip 1.0.0 ≤2.0.1

Affected Packages

npm extract-zip no fix

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

extract-zip is a Node.js npm package (https://www.npmjs.com/package/extract-zip) that wraps the yauzl ZIP parser to extract archives to a target directory. Its containment check - intended to prevent path traversal (CWE-22) - verifies that an extracted entry's resolved parent directory falls within the destination, but never checks the resolved full path of the entry itself. This creates a race-window-free symlink attack: entry 1 is a symlink whose name appears safe to the parent-dir check but whose target points outside the destination; entry 2 is a regular file with the identical archive name. Because ZIP archives are processed sequentially, extract-zip plants the symlink first, then writes the file data for the second entry through the now-resident symlink, landing content at the symlink's out-of-bound target. The root-cause CWE is CWE-22 (Improper Limitation of a Pathname to a Restricted Directory). The affected package version is extract-zip ≤ 2.0.1 as confirmed by the NVD description and npm reference.

Know when the next one hits your stack

  • 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 (22e2d327-25fe-45d7-9f0c-dcd23b7108df) PRIMARY 8.1 HIGH
AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H
vuln.today AI 8.1 HIGH

Network-delivered crafted archive requires no attacker privileges; user must trigger extraction (UI:R); arbitrary file write yields high integrity and availability impact with no confidentiality effect.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE HIGH
Red Hat 8.1 HIGH

Primary rating from Vendor (22e2d327-25fe-45d7-9f0c-dcd23b7108df).

CVSS VectorVendor: 22e2d327-25fe-45d7-9f0c-dcd23b7108df

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
High

DescriptionCVE.org

extract-zip through 2.0.1 containment-checks only the parent directory of each archive entry and never the entry's own final path component, so an archive containing two entries with identical names - a symlink whose target is outside the destination, followed by a regular file - writes through the planted symlink and yields an arbitrary file write outside the destination directory.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 27,938 npm packages depend on extract-zip (1,823 direct, 26,192 indirect)

Ecosystem-wide dependent count for version 2.0.1.

Executive ViewAI

Why It Matters

The extract-zip library (version 2.0.1 and earlier) contains a symlink validation bypass that allows malicious ZIP archives to write files outside their intended destination, compromising any system that processes untrusted ZIP files-including web services, deployment automation, and data processing pipelines. Organizations relying on this library face risk of unauthorized code placement, privilege escalation, or data exposure depending on process permissions and environment. No public exploit identified at time of analysis, but the underlying attack primitive is well-understood, making rapid mitigation essential before adversaries develop targeted tooling.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigation: enforce strict input validation rejecting any ZIP archive containing symlinks or path traversal sequences, restrict extraction operations to dedicated temporary directories with strict permissions, execute extraction under service accounts with minimal filesystem privileges, implement filesystem access controls limiting write scope to intended directories, and deploy logging to detect anomalous file-write patterns during extraction.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
High
widely-used npm package, core Electron framework dependency
Threat Intel
1
1 source
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor CIRCL GitHub VulDB

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 No
Active threat No
Deciding rule
Vendor states no customer action required
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

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

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Performance Computing 12 Not-Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Not-Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Not-Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Affected

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