Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessPublish malicious wheel to index
-
DeliveryWindows victim installs via vulnerable uv
-
ExploitCrafted path rebuilds into Windows prefix
-
ExecutionFile written outside install prefix
-
PersistExecutable planted in PATH directory
-
ImpactAttacker code runs on next command
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 a Windows host running a vulnerable uv (0.12.7 through 0.12.17) and the victim actively installing an attacker-crafted wheel (UI:A). The wheel must contain an archive member whose path, after rebuilding, resolves to a Windows path prefix or root (e.g. 'C:module.py', '\\server\share\module.py', or 'package/../C:module.py'), allowing the write to escape the installation prefix; for code-execution impact the written file must land in a directory already on the user's PATH. Limiting factors: non-Windows hosts are not affected, no exploitation occurs without the user installing the untrusted wheel, and the issue is fully remediated in 0.12.18. |
| Impact | This is a medium-severity, conditional-impact issue rather than an emergency. The vendor CVSS 4.0 vector (5.9) shows network-reachable delivery (AV:N) with low complexity (AC:L) and no privileges (PR:N), but it is gated by an attack requirement (AT:P) and active user interaction (UI:A) and yields only integrity impact (VI:H; VC:N/VA:N). In practice this means an attacker cannot exploit a running system remotely - a Windows user must be convinced to install a maliciously crafted wheel with a vulnerable uv version (0.12.7-0.12.17). No EPSS score was provided, there is no CISA KEV listing, and no public exploit was identified at time of analysis; the only public artifacts are the fix PR/commit and the security advisory, which include regression tests but not a weaponized exploit. The realistic threat model is supply-chain / typosquatting: planting an executable in a PATH directory for later code execution. Signals are consistent (no conflict between CVSS and description), so this warrants prompt patching of Windows developer/CI environments but does not indicate widespread active exploitation. |
| Exploit ScenarioDerived | An attacker publishes a malicious wheel (e.g. via typosquatting or a compromised index) whose archive member path rebuilds into a Windows prefix such as 'C:module.py'. A Windows user installs it with a vulnerable uv, and extraction writes a file outside the installation prefix - including an executable into a directory already on PATH - so the attacker's binary runs the next time that command name is invoked. No public exploit was identified at time of analysis, though the fix PR demonstrates the vulnerable path-handling cases. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 02, 2026
Arbitrary file writes outside uv's installation prefix on Windows can occur when a user installs a crafted wheel in uv 0.12.7 through 0.12.17, potentially planting an executable in a directory already on the user's PATH. Exploitation is conditional-it requires a Windows host, a vulnerable uv version, and the victim actively installing the malicious wheel-so this is a medium-severity issue rather than an emergency; non-Windows systems are unaffected. Vendor-released patch: 0.12.18. No public exploit identified at time of analysis.
RemediationAI
Upgrade to uv 0.12.18 or later; the vendor-released patch is version 0.12.18, documented in GHSA-2cv4-cqwr-gwf7 and implemented via https://github.com/astral-sh/uv/pull/21923 and commit 67169645278ce082638d619beefa6d062540843b, with the release at https://github.com/astral-sh/uv/releases/tag/0.12.18. If immediate upgrade is not possible, stop installing untrusted or third-party wheels with affected uv on Windows and restrict installs to a curated internal index with verified hashes; this prevents exposure to malicious archive members but may block legitimate third-party packages. As a further compensating control, perform wheel extraction or installation on a non-Windows host or in a sandbox where the installation prefix and PATH directories are isolated, recognizing that this changes workflow and does not fix the underlying Windows-specific path handling flaw.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in cargo, pypi, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
uv is Astral's Rust-based Python package and project manager. The flaw is in its wheel extraction path handling, specifically the SanitizedArchivePath logic in crates/uv-extract/src/archive_path.rs. CWE-22 path traversal allows a crafted archive member such as C:module.py, C:/module.py, \module.py, \\server\share\module.py, \\?\C:\module.py, or package/../C:module.py to be rebuilt into a Windows path with a drive prefix, UNC prefix, or root directory, causing extraction to write outside the installation prefix. The fix added a check that rejects any archive member whose first path component is a Windows Prefix or RootDir. Only Windows hosts are affected because the issue depends on Windows path semantics; non-Windows platforms do not interpret these paths as absolute or rooted. The CPE cpe:2.3:a:astral-sh:uv:*:*:*:*:*:*:*:* captures the affected uv product. The published CVSS:4.0 vector is AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N, and the independent CVSS:3.1 assessment is AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N, both reflecting a conditional integrity impact requiring user installation of the malicious wheel.
Know when Uv gets its next vulnerability
- 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
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
Malicious wheel is network-delivered but requires the user to install it (UI:R); no auth needed (PR:N); arbitrary file write outside the prefix gives integrity impact only (I:H, C:N/A:N).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
uv is a Python package and project manager written in Rust. From 0.12.7 until 0.12.18, uv wheel extraction on Windows can process a malicious wheel in a way that writes a file outside the installation prefix, including an executable in a directory already present on the user's PATH. Non-Windows hosts are not affected. This issue is fixed in version 0.12.18.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
Arbitrary file write in Astral uv before 0.11.15 allows a malicious wheel to place generated console_scripts or gui_scri
Installing a malicious source distribution with Astral uv versions before 0.8.22 can let a crafted chain of symlinks red
Arbitrary file deletion in Astral uv 0.11.5 and earlier allows a maliciously hand-crafted wheel to cause uv to remove fi
A flaw was found in uv. This vulnerability allows an attacker to execute malicious code during package resolution or ins
EUVD-2026-91675
GHSA-2cv4-cqwr-gwf7
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB