Description
zip is a zip library for Rust that supports reading and writing simple ZIP files. From 7.2.0 until 9.0.0, ZipArchive::extract and ZipArchive::extract_unwrapped_root_dir use safe_prepare_path in src/read/zipfile.rs and simplified_components in src/path.rs to validate symbolic link targets with a lexical prefix comparison rather than resolving each intermediate link. An attacker who knows or can guess the absolute extraction destination can create a chain whose apparent target remains under the destination while an intermediate symlink resolves outside it, allowing attacker-controlled files to be created or overwritten with the extracting process's privileges. On Windows, discarded drive and UNC prefixes can permit a single-link escape when the process has SeCreateSymbolicLinkPrivilege, such as through administrator rights or Developer Mode. This regression is distinct from CVE-2025-29787. This issue is fixed in version 9.0.0.
Published: 2026-10-26
Score: 7.4 High
EPSS: n/a
KEV: No
Impact: Arbitrary file write via symlink attack
Action: Immediate Patch
AI Analysis

Impact

The vulnerability resides in the zip-rs:zip2 library, a Rust ZIP file reader/writer. In releases 7.2.0 through 9.0.0 the extraction routines validate symbolic link targets using only a lexical prefix comparison, neglecting to resolve intermediate links. An attacker who can supply a crafted ZIP file or otherwise influence extraction can construct a symlink chain where the final file path appears to remain within the intended extraction directory but actually resolves to an arbitrary location on the filesystem. This flaw enables creation or overwriting of files with the privileges of the extracting process, effectively an arbitrary write. The weakness aligns with CWE‑22 (Path Traversal), CWE‑59 (Improper Handling of Special Cases), and CWE‑61 (Improper File Handling).

Affected Systems

The affected product is the Rust ZIP library owned by zip-rs, specifically versions 7.2.0 up to and including 9.0.0. Systems that use this library to process ZIP archives—particularly services that run extraction as an elevated user or with SeCreateSymbolicLinkPrivilege on Windows—are impacted.

Risk and Exploitability

With a CVSS score of 7.4 this vulnerability is classified as high severity. The EPSS score is unavailable, and it is not listed in the CISA KEV catalog, but the exploit vector is well understood: an attacker must deliver a specially crafted ZIP archive to the vulnerable process, which is a realistic scenario for many applications that accept user‑supplied ZIP files. Successful exploitation results in the attacker being able to write or overwrite arbitrary files on the host system with the privileges of the extraction process, potentially leading to privilege escalation, persistence, or data tampering.

Generated by OpenCVE AI on October 26, 2026 at 17:22 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the zip library to version 9.0.0 or later, where the extraction logic has been corrected.
  • If an immediate upgrade is not possible, run the extraction routine with the minimum required privileges, ensuring it is not executed as an administrator or with SeCreateSymbolicLinkPrivilege on Windows.
  • Configure the environment to isolate the extraction process, for example by using a sandbox or container, and enforce directory restrictions so that even if a symlink escape occurs, the attacker cannot affect files outside the intended scope.

Generated by OpenCVE AI on October 26, 2026 at 17:22 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 26 Oct 2026 16:45:00 +0000

Type Values Removed Values Added
Description zip is a zip library for Rust that supports reading and writing simple ZIP files. From 7.2.0 until 9.0.0, ZipArchive::extract and ZipArchive::extract_unwrapped_root_dir use safe_prepare_path in src/read/zipfile.rs and simplified_components in src/path.rs to validate symbolic link targets with a lexical prefix comparison rather than resolving each intermediate link. An attacker who knows or can guess the absolute extraction destination can create a chain whose apparent target remains under the destination while an intermediate symlink resolves outside it, allowing attacker-controlled files to be created or overwritten with the extracting process's privileges. On Windows, discarded drive and UNC prefixes can permit a single-link escape when the process has SeCreateSymbolicLinkPrivilege, such as through administrator rights or Developer Mode. This regression is distinct from CVE-2025-29787. This issue is fixed in version 9.0.0.
Title zip: Arbitrary file write outside the extraction directory, because ZipArchive::extract validates symlink targets lexically. (The defense against CVE-2025-29787 was broken in v7.2.0)
Weaknesses CWE-22
CWE-59
CWE-61
References
Metrics cvssV3_1

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


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-26T16:34:29.328Z

Reserved: 2026-10-23T20:21:45.106Z

Link: CVE-2026-115908

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-26T17:17:18.293

Modified: 2026-10-26T17:17:18.293

Link: CVE-2026-115908

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-26T17:30:16Z

Weaknesses
  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

  • CWE-59

    Improper Link Resolution Before File Access ('Link Following')

  • CWE-61

    UNIX Symbolic Link (Symlink) Following