Arbitrary file write outside extraction directory in Rust zip crate
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- High
- Impact type
- —
- Confidentiality · integrity · availability
- None · High · High
- Fix status
- Partial Red Hat: 13 without a fix
Attack profile from CVSS 3.1 · CNA. Fix status from CNA, GitHub and Red Hat.
Summary
The zip Rust crate (zip2 and zip on crates.io) from 7.2.0 before 9.0.0 checks symbolic link targets in ZipArchive::extract only by lexical prefix. An attacker who knows or can guess the extraction destination can chain links that resolve outside it, writing or overwriting files with the extracting process's privileges (CWE-59). On Windows, a single link can escape when the process holds SeCreateSymbolicLinkPrivilege.
Written with Claude Haiku 5.5 from the sources below · 2026-11-07
Description from the CNA
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| zip-rs | zip2 | 7.2.0 to before 9.0.0 | 9.0.0 | Patch available | CNA |
| — | zip (crates.io) | 7.2.0 to before 9.0.0 | 9.0.0 | Patch available | GHSA-hjqx-j4rw-g7xv |
- zip2 Vendorzip-rs Affected 7.2.0 to before 9.0.0 Fixed in 9.0.0 Patch available CNA
- zip (crates.io) Vendor— Affected 7.2.0 to before 9.0.0 Fixed in 9.0.0 Patch available GHSA-hjqx-j4rw-g7xv
Remediation
Upgrade the zip crate (zip2 and zip on crates.io) to 9.0.0, which fixes this. Red Hat lists no fix available for Ansible Automation Orchestrator 2026, Confidential Cluster Operator, Confidential Compute Attestation, Red Hat Ansible Automation Platform 2 and other products, and no fix planned for OpenShift Lightspeed.
Written with Claude Haiku 5.5 from the sources below · 2026-11-07
- Fix · CNA zip2 (zip-rs) Fixed in 9.0.0
- Fix · GHSA-hjqx-j4rw-g7xv zip (crates.io) Fixed in 9.0.0 Advisory →
Vendor assessments
Red Hat
Red Hat rating: Important. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Ansible Automation Orchestrator 2026 | Affected | No fix yet |
| Confidential Cluster Operator | Affected | No fix yet |
| Confidential Compute Attestation | Affected | No fix yet |
| OpenShift Lightspeed | Affected | No fix planned: Will not fix |
| Red Hat Ansible Automation Platform 2 | Affected | No fix yet |
| Red Hat Discovery 2 | Affected | No fix yet |
| Red Hat Enterprise Linux 10 | Affected | No fix yet |
| Red Hat Enterprise Linux 9 | Affected | No fix yet |
| Red Hat Enterprise Linux AI (RHEL AI) 3 | Affected | No fix yet |
| Red Hat Lightspeed Services for OCP | Affected | No fix yet |
| Red Hat OpenShift AI (RHOAI) | Affected | No fix yet |
| Red Hat Satellite 6 | Affected | No fix yet |
| Red Hat Trusted Profile Analyzer | Affected | No fix yet |
Not affected: 9 products
- Pen Drive Powered by Red Hat Lightspeed
- Red Hat Ansible Automation Platform 2
- Red Hat Ansible Automation Platform Ansible Core 2
- Red Hat Enterprise Linux 10
- Red Hat Enterprise Linux 8
- Red Hat Enterprise Linux 9
- Red Hat Enterprise Linux command line assistant
- Red Hat Hardened Images
- Red Hat Quay 3
Timeline
- 2026-10-26 Threatist record created from CVE-2026-115908
- 2026-10-26 CISA SSVC decision points changed
- 2026-10-26 Priority changed: MEDIUM → LOW
- 2026-10-29 Alias added: GHSA-hjqx-j4rw-g7xv
- 2026-10-29 Fix available: crates.io/[email protected] · GHSA-hjqx-j4rw-g7xv
- 2026-10-29 CVSS score added · GHSA-hjqx-j4rw-g7xv
- 2026-10-29 Weakness changed · GHSA-hjqx-j4rw-g7xv
- 2026-10-29 5 new references · GHSA-hjqx-j4rw-g7xv
- 2026-11-06 Affected versions changed · Red Hat
- 2026-11-06 CVSS score added · Red Hat
- 2026-11-07 Affected versions changed · Red Hat
References
More zip-rs vulnerabilities
- TI-2026-80483 Parser differential in Rust zip library allows file overwrite CVSS 4.0CRITICAL 10.0
- TI-2026-80489 Denial of service in zip crate from attacker-controlled ZIP64 size CVSS 3.1HIGH 7.5
- TI-2025-21198 zip Vulnerable to Incorrect Path Canonicalization During Archive Extraction, Leading to Arbitrary File Write CVSS 4.0HIGH 7.3
- TI-2026-80488 Authentication bypass in zip Rust crate lets modified AES entries pass CVSS 3.1MEDIUM 6.5
- TI-2026-80491 Excessive allocation in zip Rust crate aborts extraction of symlinks CVSS 3.1HIGH 7.5
Sources
- CVE-2026-115908 · CVE Program
- CVE-2026-115908 · NVD
- FIRST EPSS
- GHSA-hjqx-j4rw-g7xv · GitHub Advisory Database · CC BY 4.0
- CVE-2026-115908 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences