Update dependency uv to v0.11.15 [SECURITY]#8
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
03eb08c to
e4f8474
Compare
e4f8474 to
41230ca
Compare
41230ca to
1a8181e
Compare
1a8181e to
a992966
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.4.10→==0.11.15uv allows ZIP payload obfuscation through parsing differentials
CVE-2025-54368 / GHSA-8qf3-x8v5-2pj8
More information
Details
Impact
In versions 0.8.5 and earlier of uv, remote ZIP archives were handled in a streamwise fashion, and file entries were not reconciled against the archive's central directory. This enabled two parser differentials against other Python package installers:
In both cases, the outcome is that an attacker can produce a ZIP with a consistent digest that expands differently with different installers.
The ZIP standard is ambiguous with respect to these behavior differentials. Consequently, these same differentials may be accepted ZIP parsers other than those used in uv. This advisory is for uv in particular, but all consumers of ZIP-based Python package distributions, e.g., pip, are potentially susceptible to similar parser differentials in other ZIP parsers.
The practical impact of these differentials is limited by a number of factors:
uv install $packagewith an attacker-controlled$package.python -c "import $package".Patches
Versions 0.8.6 and newer of uv address both of the parser differentials above, by refusing to process ZIPs with duplicated local file entries or stacked contents.
Workarounds
Users are advised to upgrade to 0.8.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 discovered separately by two different individuals: Caleb Brown (Google) and Tim Hatch (Netflix).
Severity
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
uv has differential in tar extraction with PAX headers
GHSA-w476-p2h3-79g9
More information
Details
Impact
In versions 0.9.4 and earlier of uv, tar archives containing PAX headers with file size overrides were not handled properly. As a result, an attacker could contrive a source distribution (as a tar archive) that would extract differently when installed via uv versus other Python package installers.
The underlying parsing differential here originates with astral-tokio-tar, which disclosed this vulnerability as CVE-2025-62518.
In practice, the impact of this vulnerability is low: only source distributions can be formatted as tar archives, and source distributions execute arbitrary code at build/installation time by definition. Consequently, a parser differential in tar extraction is strictly less powerful than the capabilities already exposed to an attacker who has the ability to control source distributions.
However, this particular source of malleability in source distributions is unintentional and not operating by design, and therefore we consider it a vulnerability despite its overlap in capabilities with intended behavior.
Patches
Versions 0.9.5 and newer of uv address the vulnerability above. Users should upgrade to 0.9.5 or newer.
Workarounds
Users are advised to upgrade to version 0.9.5 or newer to address this advisory.
Users should experience no breaking changes as a result of the patch above.
References
Severity
Low
References
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
uv allows ZIP payload obfuscation through parsing differentials
GHSA-pqhf-p39g-3x64
More information
Details
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).
Severity
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
uv vulnerable to arbitrary file deletion through RECORD entries
GHSA-pjjw-68hj-v9mw
More information
Details
Impact
Wheel RECORD entries can contain relative paths that traverse outside of the wheel’s installation prefix. In versions 0.11.5 and earlier of uv, these wheels were not rejected on installation and the RECORD was respected without validation on uninstall.
uv uses the RECORD to determine files to remove on uninstall. Consequently, a malicious or malformed wheel could induce deletion of arbitrary files outside of the wheel’s installation prefix on uninstall.
uv does not use the RECORD file to determine wheel file paths. Invalid RECORD entries cannot be used to create or modify files in arbitrary locations.
Standards-compliant Python packaging tooling does not produce RECORD files that exhibit this behavior; an attacker must manually manipulate the RECORD. A user must install and uninstall the malformed wheel to be affected. An attack must guess the depth of the installation prefix path in order to target system files.
Absolute paths in RECORD files are not allowed by the specification and, when present, uv always treats them as rooted in the wheel’s installation prefix. Absolute paths cannot be used to delete arbitrary files.
Only files can be deleted, attempts to delete a directory via an invalid RECORD entry will fail.
Patches
Versions 0.11.6 and newer of uv address the validation gap above, by removing invalid entries from RECORD files on wheel installation and ignoring RECORD paths that would escape the installation prefix on uninstall.
Workarounds
Users are advised to upgrade to 0.11.6 or newer to address this advisory.
Users should experience no breaking changes as a result of the patch above.
Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:L/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
uv is vulnerable to arbitrary file write through entry point names
GHSA-4gg8-gxpx-9rph
More information
Details
Impact
In versions of uv prior to 0.11.15, when installing a distribution containing an entry point specification (under
console_scriptsorgui_scripts), uv would place the generated entry point according to the given name even if doing so resulted in a path outside of the environment's scripts directory.A malicious wheel could use this to place an executable outside of the intended environment, including in a directory already present on the user's
PATH. This could shadow or overwrite an existing executable and potentially result in unexpected code execution under the wheel's control, even if the wheel's installation environment was not explicitly added toPATHby the user.In order to exploit this vulnerability, the attacker must induce their target into installing a malicious wheel.
Patches
uv 0.11.15 and newer address this vulnerability. Users are encouraged to upgrade to 0.11.15.
Workarounds
There is no workaround other than upgrading to uv 0.11.15.
Severity
Medium
References
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
astral-sh/uv (uv)
v0.11.15Compare Source
Released on 2026-05-18.
Security
Enhancements
Preview
Configuration
required-environmentsinuv pip compile(#19378)Performance
Version::only_release_trimmed(#19425)Bug fixes
[tool.uv.sources]credentials underuv sync --frozen(#19423)Documentation
v0.11.14Compare Source
Released on 2026-05-12.
Enhancements
top_level.txtentries in uninstall that are not valid Python identifiers (#19340)Bug fixes
.envfiles in parent process (#19343)uv treeshowing extra-conditional deps for packages required without extras (#19332)--no-build) during lock validation (#19366)v0.11.13Compare Source
Released on 2026-05-10.
Bug fixes
--require-hasheswhen installing frompylock.tomlfiles (#19334)Python
v0.11.12Compare Source
Released on 2026-05-08.
Python
Enhancements
--no-editablesupport touv pip install(#19306)Bug fixes
Respect
--no-devoverUV_DEV=1(#19313)Don't suggest non-existent
--no-frozenflag (#19290) (#19294)Documentation
v0.11.11Compare Source
Released on 2026-05-06.
Bug fixes
v0.11.10Compare Source
Released on 2026-05-05.
Bug fixes
v0.11.9Compare Source
Released on 2026-05-04.
This release includes a special release candidate for the next Python 3.14 patch release. Python 3.14 included a new garbage collection implementation, which reduced pause times but caused significant unexpected memory pressure in production environments. In 3.14.5 and 3.15, the previous garbage collection implementation will be restored.
We would greatly appreciate if you tested the 3.14.5rc1 version included in this release. The stable version is expected to be released soon and any feedback on potential issues would be helpful to the Python development team.
For more context, see the announcement, issue, and pull request.
Issues with the new release can be reported in the uv or CPython issue trackers.
Python
libpythonto match LinuxEnhancements
Preview
uv auditadd reporting for adverse project statuses (#19128)Bug fixes
requires-pythonpins a version (#18700)LockedFile::dropon Wine (#19229)top_level.txtin.egg-info(#19114)PYTHONHOMEand only set__PYVENV_LAUNCHER__for virtual environments (#19199)Documentation
--native-tlsandUV_NATIVE_TLSas deprecated (#18705)pytorch-triton-rocmto PyTorch ROCm docs (#19241)uv initcreates git files / folders in the projects guide (#19183)v0.11.8Compare Source
Released on 2026-04-27.
Enhancements
--python-downloads-json-urltopython pin(#19092)pip uninstall -y(#19082)UV_PYTHON_NO_REGISTRY(#19035)exclude-newerto be missing from the lockfile whenexclude-newer-spanis present (#19024)uv self version --short(#19019)SSL_CERT_DIRdirectory (#19018)exclude-newerandexclude-newer-packagevalues in lockfiles (#19022, #19101)Configuration
UV_NO_PROJECT(#19052)UV_PYTHON_SEARCH_PATHfor Python discoveryPATHoverrides (#19034)Bug fixes
rust-toolchain.tomlto uv-build sdist (#19131)uv lockon apyproject.tomlthat only contains dependency-groups (#19087).python-version(#19102)Documentation
v0.11.7Compare Source
Released on 2026-04-15.
Python
2026041including an OpenSSL security upgrade (#19004)Enhancements
required-versionmismatches (#18977)--exclude-newerhints (#18952)Preview features
--scripthandling inuv audit(#18970)uv audit(#18970)Bug fixes
workspace metadatain linehaul data (#18966)uv sync --checkfailures (#18976)~=operators (#18960)v0.11.6Compare Source
Released on 2026-04-09.
Bug fixes
RECORDduring installation (#18943)uv cache cleanerrors due to Win32 path normalization (#18856)v0.11.5Compare Source
Released on 2026-04-08.
Python
Enhancements
build_system.requireserror message (#18911)Preview features
exclude-newerto[[tool.uv.index]](#18839)uv audit: add context/warnings for ignored vulnerabilities (#18905)Bug fixes
Documentation
PIP_COMPATIBILITY.mdredirect file (#18928)uv init example-bare --bareexamples (#18822, #18925)v0.11.4Compare Source
Released on 2026-04-07.
Python
Enhancements
--upgrade-group(#18266)Bug fixes
pyproject.tomldependencies (#18786)--lockedand--frozenwhen script lockfile is missing (#18832)uv exportextra resolution for workspace member and conflicting extras (#18888)exclude-newervalues duringuv tree --outdated(#18899)--exclude-newerinuv tool list --outdated(#18861)Cargo.lockinuv-buildsource distributions (#18831)Documentation
--exclude-newercompares artifact upload times (#18830)v0.11.3Compare Source
Released on 2026-04-01.
Enhancements
uv workspace metadatawith dependency information from the lock (#18356)/installers/uv/lateston the mirror (#18725)Preview features
--ignoreand--ignore-until-fixedtouv audit(#18737)Bug fixes
blake2bhashes (#18794)powerpc64-unknown-linux-gnufrom release build targets (#18800)uv pip check(#18742)Documentation
falseopt-out forexclude-newer-package(#18768, #18803)v0.11.2Compare Source
Released on 2026-03-26.
Enhancements
uv self updatefetch the manifest from the mirror first (#18679)uv self updatesuccess and failure messages with--quiet(#18645)Preview features
Bug fixes
uv run(#17890)v0.11.1Compare Source
Released on 2026-03-24.
Bug fixes
riscv64gc-unknown-linux-musl(#18686)==Python version request ranges (#9697)Documentation
--python <dir>in "Using arbitrary Python environments" (#6457)PS_MODULE_PATHandUV_WORKING_DIR(#18691)v0.11.0Compare Source
Released on 2026-03-23.
Breaking changes
This release includes changes to the networking stack used by uv. While we think that breakage will be rare, it is possible that these changes will result in the rejection of certificates previously trusted by uv so we have marked the change as breaking out of an abundance of caution.
The changes are largely driven by the upgrade of reqwest, which powers uv's HTTP clients, to v0.13 which included some breaking changes to TLS certificate verification.
The following changes are included:
rustls-platform-verifieris used instead ofrustls-native-certsandwebpkifor certificate verificationThis change should have no effect unless you are using the
native-tlsoption to enable reading system certificates.rustls-platform-verifierdelegates to the system for certificate validation (e.g.,Security.frameworkon macOS) instead of eagerly loading certificates from the system and verifying them viawebpki. The effects of this change will vary based on the operating system. In general, uv's certificate validation should now be more consistent with browsers and other native applications. However, this is the most likely cause of breaking changes in this release. Some previously failing certificate chains may succeed, and some previously accepted certificate chains may fail. In either case, we expect the validation to be more correct and welcome reports of regressions.In particular, because more responsibility for validating the certificate is transferred to your system's security library, some features like CA constraints or revocation of certificates via OCSP and CRLs may now be used.
This change should improve performance when using system certificate on macOS, as uv no longer needs to load all certificates from the keychain at startup.
aws-lcis used instead ofringfor a cryptography backendThere should not be breaking changes from this change. We expect this to expand support for certificate signature algorithms.
--native-tlsis deprecated in favor of a new--system-certsflagThe
--native-tlsflag is still usable and has identical behavior to--system-certs.This change was made to reduce confusion about the TLS implementation uv uses. uv always uses
rustlsnotnative-tls.Building uv on x86-64 and i686 Windows requires NASM
NASM is required by
aws-lc. If not found on the system, a prebuilt blob provided byaws-lc-syswill be used.If you are not building uv from source, this change has no effect.
See the CONTRIBUTING guide for details.
Empty
SSL_CERT_FILEvalues are ignored (for consistency withSSL_CERT_DIR)See #18550 for details.
Python
See the python-build-standalone release notes for details.
Enhancements
Preview features
--service-formatand--service-urltouv audit(#18571)Performance
Bug fixes
uv tool list --outdated(#18586)uv exportfor workspace member packages with conflicts (#18635)Documentation
FLASH_ATTENTION_SKIP_CUDA_BUILDguidance forflash-attninstalls (#18473)v0.10.12Compare Source
Released on 2026-03-19.
Python
Enhancements
--no-emit-package(#18565)Preview features
uv auditin the CLI help (#18540)Bug fixes
uv python list(#18459)Documentation
uv-docker-example(#18558)v0.10.11Compare Source
Released on 2026-03-16.
Enhancements
Performance
Bug fixes
--projectto refer to apyproject.tomldirectly and reduce to a warning on other files (#18513)SYSTEM_VERSION_COMPATwhen querying interpreters on macOS (#18452)uv sync --activerecreating active environments whenUV_PYTHON_INSTALL_DIRis relative (#18398)Documentation
-o requirements.txtinuv pip compileexample (#12308)v0.10.10Compare Source
Released on 2026-03-13.
Python
Enhancements
--outdatedflag touv tool list(#18318)--projectdirectory does not exist (#17714)uv init(#18417)uv cache clearan alias ofuv cache clean(#18420)uv_build(#18419)Preview features
uv auditoutput (#18392)uv audit(#18193)uv audit(#18394)Bug fixes
uv tool install --force(#18399)uv export(#18433)Content-Type(#18334)Documentation
v0.10.9Compare Source
Released on 2026-03-06.
Enhancements
fbgemm-gpu,fbgemm-gpu-genai,torchrec, andtorchtuneto the PyTorch list (#18338)uv_buildsettings withoutuv_build(#15750)/usr/lib/os-releaseon Linux system lookup failure (#18349)cargo auditableto include SBOM in uv builds (#18276)Configuration
UV_VENV_RELOCATABLE(#18331)Performance
Documentoverhead (#18306)Bug fixes
cp3-none-any(#17064)Documentation
v0.10.8Compare Source
Released on 2026-03-03.
Python
Enhancements
--exclude-newerfilters out all versions of a package (#18217)uv_builddirect build compatibility (#17902)Configuration
UV_INIT_BAREenvironment variable foruv init(#18210)Bug fixes