CVE-2026-115908: 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)

Published Oct 26, 2026
·
Updated

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::extractunwrappedrootdir use safepreparepath in src/read/zipfile.rs and simplifiedcomponents 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 Software

1 affected component
crates.io/zip>=7.2.0<9.0.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade zip to a version that resolves this vulnerability.

    Fixed in 9.0.0

Event History

Oct 26, 2026
CVE Published
via MITRE·04:34 PM
Data Sourced
via MITRE·04:34 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which deployments are exposed?

Applications using crates.io/zip versions 7.2.0 through before 9.0.0 are exposed if they extract attacker-controlled ZIP archives with ZipArchive::extract or ZipArchive::extract_unwrapped_root_dir. Files can be created or overwritten with the privileges of the extracting process.

2

What does an attacker need to exploit this issue?

The attacker needs to provide a ZIP archive containing a symlink chain and know or guess the absolute extraction destination. The chain is constructed so its lexical target appears to remain within that destination while an intermediate symlink resolves outside it.

3

Are Windows systems affected under different conditions?

On Windows, discarded drive and UNC prefixes can enable a single-link escape. Exploitation in this case requires the process to have SeCreateSymbolicLinkPrivilege, such as through administrator rights or Developer Mode.

4

How can I determine whether an application is affected and remediate it?

Check whether the application depends on zip 7.2.0 or a later version below 9.0.0 and calls either affected extraction method. The issue is fixed in version 9.0.0.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203