---
id: CVE-2026-115908
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)
summary: >-
  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_componen…
severity: high
cvss: 7.4
cvssVector: 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:H'
cvssSource: cna
cwe:
  - CWE-22
  - CWE-59
  - CWE-61
vendor: zip-rs
product: zip2
affected:
  - 'zip2 >= 7.2.0, < 9.0.0'
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-10-26T19:29:37.466263Z'
published: '2026-10-26'
updated: '2026-10-26'
sourceUpdated: '2026-10-26T19:36:11.803Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-115908'
references:
  - url: 'https://github.com/zip-rs/zip2/security/advisories/GHSA-hjqx-j4rw-g7xv'
    label: 'https://github.com/zip-rs/zip2/security/advisories/GHSA-hjqx-j4rw-g7xv'
  - url: >-
      https://github.com/zip-rs/zip2/commit/09c030eab56e8db8fb3c1c33f554407b30bad8fa
    label: >-
      https://github.com/zip-rs/zip2/commit/09c030eab56e8db8fb3c1c33f554407b30bad8fa
  - url: 'https://github.com/zip-rs/zip2/releases/tag/v9.0.0'
    label: 'https://github.com/zip-rs/zip2/releases/tag/v9.0.0'
tags:
  - cve.org
ingestedAt: '2026-10-26T17:33:33.080Z'
---

## Overview

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.

## Affected

- `zip2 >= 7.2.0, < 9.0.0`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
