Update dependency uv to v0.9.6 [SECURITY] #14941
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==0.9.5->==0.9.6GitHub Vulnerability Alerts
GHSA-pqhf-p39g-3x64
Impact
In versions 0.9.5 and earlier of uv, ZIP archives were handled in a manner that enabled two parsing differentials against other components of the Python packaging ecosystem:
zipfilemodule truncates the filename at the first null, while uv would skip (not extract) any archive members whose filenames contained nulls. Because of this difference, a ZIP archive could be constructed that would extract differently across different Python package installers.In both cases, the outcome is that an attacker may be able to produce a ZIP with a consistent digest that expands differently with different Python package installers.
Like with GHSA-8qf3-x8v5-2pj8, the impact of these differentials is limited by a number of factors:
uv pip install $packageor similar with an attacker-controlled $package.When using wheel distributions, installation of the malicious package is not sufficient for execution of malicious code, the vicim would need to perform a separate invocation, e.g.,
python -c "import $package".Patches
Versions 0.9.6 and newer of uv address both of the parser differentials above, by properly handling comments in central directory entries and by refusing to process ZIPs that contain filename fields that are unlikely to be interpreted consistently across other ZIP parser implementations.
Workarounds
Users are advised to upgrade to 0.9.6 or newer to address this advisory.
Most users should experience no breaking changes as a result of the patch above. However, users who do experience breakage should carefully review their distributions for signs of malicious intent. Users may choose to set
UV_INSECURE_NO_ZIP_VALIDATION=1to revert to the previous behavior.Attribution
This vulnerability was disclosed by Caleb Brown (Google).
Release Notes
astral-sh/uv (uv)
v0.9.6Compare Source
Released on 2025-10-29.
This release contains an upgrade to Astral's fork of
async_zip, which addresses potential sources of ZIP parsing differentials between uv and other Python packaging tooling. See GHSA-pqhf-p39g-3x64 for additional details.Security
Python
Enhancements
--cleartouv buildto remove old build artifacts (#16371)--no-create-gitignoretouv build(#16369)pip install --systemwhen externally managed (#16392)uv lock --checkwith outdated lockfile will print that--checkwas passed, instead of--locked(#16322)uv inittemplate for Maturin (#16449)Bug fixes
uv python upgrade(#16420)--find-linksdistributions (#16446)uv export --frozenwhen the lockfile is outdated (#16407)uv treewhen--packageis used with circular dependencies (#15908)pip freeze --quiet(#16491)uv auth login pyx.devretries to 60s (#16498)uv add --group ... -r ...(#16490)Documentation
Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.