Skip to content

Update dependency uv to v0.11.6 [SECURITY]#278

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/pypi-uv-vulnerability
Open

Update dependency uv to v0.11.6 [SECURITY]#278
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/pypi-uv-vulnerability

Conversation

@renovate

@renovate renovate Bot commented Aug 7, 2025

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
uv (source, changelog) ==0.2.25==0.11.6 age confidence

uv 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:

  1. An attacker could contrive a ZIP archive that would extract with legitimate contents on some package installers, and malicious contents on others due to multiple local file entries. The attacker could choose which installer to target.
  2. An attacker could contrive a "stacked" ZIP input with multiple internal ZIPs, which would be handled differently by different package installers. The attacker could choose which installer to target.

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:

  • To be compromised via this vulnerability, user interaction of some sort is required. In particular, the user must run uv install $package 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".
  • If a ZIP-based source distribution (which are less common than tarball source distributions), is encountered, malicious code can be executed during package resolution or installation. uv may invoke the malicious code when building the source distribution into a wheel.
  • The practical impact of these differentials is limited by a coordinated fix to Warehouse, PyPI's backend: Warehouse now rejects ZIPs exhibiting these differentials, limiting the ability of an attacker to distribute malicious ZIP distributions via PyPI. As part of that coordinated fix, a review of Warehouse revealed no evidence of exploitation.
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=1 to revert to the previous behavior.

Attribution

This vulnerability was discovered separately by two different individuals: Caleb Brown (Google) and Tim Hatch (Netflix).

Severity

  • CVSS Score: 6.8 / 10 (Medium)
  • Vector String: CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N

References

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
  • See CVE-2025-62518 for the corresponding advisory against astral-tokio-tar

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:

  1. Central directory entries in a ZIP archive can contain comment fields. However, uv would assume that these fields were not present, since they aren't widely used. Consequently, a ZIP archive could be constructed where uv would interpret the contents of a central directory comment field as ZIP control structures (such as a new central directory entry), rather than skipping over them.
  2. Both local file entries and central directory entries contain filename fields, which are used to place archive members on disk. These fields are arbitrary sequences of bytes, and may therefore be invalid or ambiguous. For example, they may contain ASCII null bytes, in which case different ZIP extractors behave differently: Python's zipfile module 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:

  • To be compromised via this vulnerability, user interaction of some sort is required. In particular, the user must run uv pip install $package or 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".
  • If a ZIP-based source distribution (which are less common than tarball source distributions), is encountered, malicious code can be executed during package resolution or installation. uv may invoke the malicious code when building the source distribution into a wheel.
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=1 to revert to the previous behavior.

Attribution

This vulnerability was disclosed by Caleb Brown (Google).

Severity

  • CVSS Score: 6.8 / 10 (Medium)
  • Vector String: CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N

References

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 Score: 2.1 / 10 (Low)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

astral-sh/uv (uv)

v0.11.6

Compare Source

Released on 2026-04-09.

This release resolves a low severity security advisory in which wheels with malformed RECORD entries could delete arbitrary files on uninstall. See GHSA-pjjw-68hj-v9mw for details.

Bug fixes
  • Do not remove files outside the venv on uninstall (#​18942)
  • Validate and heal wheel RECORD during installation (#​18943)
  • Avoid uv cache clean errors due to Win32 path normalization (#​18856)

v0.11.5

Compare Source

Released on 2026-04-08.

Python
  • Add CPython 3.13.13, 3.14.4, and 3.15.0a8 (#​18908)
Enhancements
  • Fix build_system.requires error message (#​18911)
  • Remove trailing path separators in path normalization (#​18915)
  • Improve error messages for unsupported or invalid TLS certificates (#​18924)
Preview features
  • Add exclude-newer to [[tool.uv.index]] (#​18839)
  • uv audit: add context/warnings for ignored vulnerabilities (#​18905)
Bug fixes
  • Normalize persisted fork markers before lock equality checks (#​18612)
  • Clear junction properly when uninstalling Python versions on Windows (#​18815)
  • Report error cleanly instead of panicking on TLS certificate error (#​18904)
Documentation

v0.11.4

Compare Source

Released on 2026-04-07.

Enhancements
  • Add support for --upgrade-group (#​18266)
  • Merge repeated archive URL hashes by version ID (#​18841)
  • Require all direct URL hash algorithms to match (#​18842)
Bug fixes
  • Avoid panics in environment finding via cycle detection (#​18828)
  • Enforce direct URL hashes for pyproject.toml dependencies (#​18786)
  • Error on --locked and --frozen when script lockfile is missing (#​18832)
  • Fix uv export extra resolution for workspace member and conflicting extras (#​18888)
  • Include conflicts defined in virtual workspace root (#​18886)
  • Recompute relative exclude-newer values during uv tree --outdated (#​18899)
  • Respect --exclude-newer in uv tool list --outdated (#​18861)
  • Sort by comparator to break specifier ties (#​18850)
  • Store relative timestamps in tool receipts (#​18901)
  • Track newly-activated extras when determining conflicts (#​18852)
  • Patch Cargo.lock in uv-build source distributions (#​18831)
Documentation
  • Clarify that --exclude-newer compares artifact upload times (#​18830)

v0.11.3

Compare Source

Released on 2026-04-01.

Enhancements
  • Add progress bar for hashing phase in uv publish (#​18752)
  • Add support for ROCm 7.2 (#​18730)
  • Emit abi3t tags for every abi3 version (#​18777)
  • Expand uv workspace metadata with dependency information from the lock (#​18356)
  • Implement support for PEP 803 (#​18767)
  • Pretty-print platform in built wheel errors (#​18738)
  • Publish installers to /installers/uv/latest on the mirror (#​18725)
  • Show free-threaded Python in built-wheel errors (#​18740)
Preview features
  • Add --ignore and --ignore-until-fixed to uv audit (#​18737)
Bug fixes
  • Bump simple API cache (#​18797)
  • Don't drop blake2b hashes (#​18794)
  • Handle broken range request implementations (#​18780)
  • Remove powerpc64-unknown-linux-gnu from release build targets (#​18800)
  • Respect dependency metadata overrides in uv pip check (#​18742)
  • Support debug CPython ABI tags in environment compatibility (#​18739)
Documentation

v0.11.2

Compare Source

Released on 2026-07-15.

Python
  • Use gzip-compressed artifacts for PyPy downloads (#​20265)
Enhancements
  • Add JSON output to uv tree (#​19978)
  • Add CUDA 13.2 as a supported PyTorch backend (#​20267)
  • Prefer local artifacts over URLs when installing from pylock.toml (#​20393)
  • Clarify diagnostics for unsatisfiable direct requirement ranges (#​20227)
  • Include the selected project name in missing-extra errors (#​20358)
Preview features
  • Preserve extras and dependency-group conflict context when selecting locked project tools (#​20078)
  • Split OSV audit queries that exceed the service's 1,000-package limit (#​20398)
  • Apply OSV fixed-version information only to the matching package and ecosystem (#​20399)
  • Skip the virtualenv distutils monkeypatch on Python 3.10 and later (#​20222)
  • Report invalid uv audit --service-url values instead of panicking (#​20374)
  • Include preview settings in the published SchemaStore schema (#​20304)
Performance
  • Reduce resolver work by widening selected versions across ranges without other known candidates (#​20115)
  • Defer client and build setup for no-op uv sync operations (#​20364)
  • Reuse workspace discovery during frozen syncs (#​20363)
  • Reuse workspace discovery after resolving settings (#​20356)
  • Reuse workspace discovery in uv tree, uv export, uv format, and uv audit (#​20359)
  • Avoid cache and interpreter setup when reading a project version (#​20360)
Bug fixes
  • Reject duplicate active package entries in pylock.toml (#​20391)
  • Preserve direct-archive hashes in uv pip freeze output (#​20395)
  • Explain conflicting root requirements instead of displaying an empty version range (#​20228)
  • Prevent build-backend data paths from escaping the project or bypassing wheel exclusions (#​20397)
  • Reject PEP 517 backend paths outside the source tree, including paths that escape through symlinks (#​20387)
  • Redact credentials from failed Git fetch commands (#​20401)
  • Fix exclusive post-release range ordering to match PEP 440 (#​20268)
  • Canonicalize equivalent PEP 440 ranges during dependency resolution (#​20182)
  • Honor Python version pins when initializing scripts (#​20404)
  • Respect package-scoped source filtering for scripts (#​20389)
  • Report existing environment incompatibilities when uv pip install --strict has nothing to install (#​20388)
  • Continue scanning platlib when purelib is missing (#​20405)
  • Handle versionless .egg-info files as legacy package metadata (#​20403)
  • Make repeated locking idempotent for impossible cross-variable platform markers (#​20369)
  • Report invalid cloud credential endpoint URLs instead of panicking (#​20372)
  • Report invalid pylock.toml artifact URLs instead of panicking (#​20373)
  • Report non-UTF-8 virtual environment paths instead of panicking while generating activation scripts (#​20375)
  • Return an unsupported-operation error from unimplemented build-backend requirement hooks (#​20376)
Documentation
  • Clarify --no-build behavior for editable requirements (#​20234)
  • Document uv's threat model (#​20236)
  • Reduce the number of badges in the README (#​11257)

v0.11.1

Compare Source

Released on 2026-06-03.

Python
Enhancements
  • Always compute SHA256 for remote distributions (#​19662)
  • Add PyEmscripten platform (PEP 783) (#​19629)
  • Add Pyodide 2025 target triple (#​19653)
Preview features
  • Make preview features for commands have names that aren't ambiguous with the command (#​19645)
  • Respect --isolated in uv check (#​19666)
Bug fixes
  • Continue tool uninstall after dangling receipts (#​19623)
  • Skip Unix-specific installation steps when cross-installing Windows Python distributions (#​19424)

v0.11.0

Compare 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-verifier is used instead of rustls-native-certs and webpki for certificate verification

    This change should have no effect unless you are using the native-tls option to enable reading system certificates.

    rustls-platform-verifier delegates to the system for certificate validation (e.g., Security.framework on macOS) instead of eagerly loading certificates from the system and verifying them via webpki. 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-lc is used instead of ring for a cryptography backend

    There should not be breaking changes from this change. We expect this to expand support for certificate signature algorithms.

  • --native-tls is deprecated in favor of a new --system-certs flag

    The --native-tls flag 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 rustls not native-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 by aws-lc-sys will be used.

    If you are not building uv from source, this change has no effect.

    See the CONTRIBUTING guide for details.

  • Empty SSL_CERT_FILE values are ignored (for consistency with SSL_CERT_DIR)

See #​18550 for details.

Python
  • Enable frame pointers for improved profiling on Linux x86-64 and aarch64

See the python-build-standalone release notes for details.

Enhancements
  • Treat 'Dynamic' values as case-insensitive (#​18669)
  • Use a dedicated error for invalid cache control headers (#​18657)
  • Enable checksum verification in the generated installer script (#​18625)
Preview features
  • Add --service-format and --service-url to uv audit (#​18571)
Performance
  • Avoid holding flat index lock across indexes (#​18659)
Bug fixes
  • Find the dynamic linker on the file system when sniffing binaries fails (#​18457)
  • Fix export of conflicting workspace members with dependencies (#​18666)
  • Respect installed settings in uv tool list --outdated (#​18586)
  • Treat paths originating as PEP 508 URLs which contain expanded variables as relative (#​18680)
  • Fix uv export for workspace member packages with conflicts (#​18635)
  • Continue to alternative authentication providers when the pyx store has no token (#​18425)
  • Use redacted URLs for log messages in cached client (#​18599)
Documentation
  • Add details on Linux versions to the platform policy (#​18574)
  • Clarify FLASH_ATTENTION_SKIP_CUDA_BUILD guidance for flash-attn installs (#​18473)
  • Split the dependency bots page into two separate pages (#​18597)
  • Split the alternative indexes page into separate pages (#​18607)

v0.10.12

Compare Source

Release Notes

Released on 2026-03-19.

Python
Enhancements
  • Include uv's target triple in version report (#​18520)
  • Allow comma separated values in --no-emit-package (#​18565)
Preview features
Bug fixes
  • Improve reporting of managed interpreter symlinks in uv python list (#​18459)
  • Preserve end-of-line comments on previous entries when removing dependencies (#​18557)
  • Treat abi3 wheel Python version as a lower bound (#​18536)
  • Detect hard-float support on aarch64 kernels running armv7 userspace (#​18530)
Documentation
  • Add Python 3.15 to supported versions (#​18552)
  • Adjust the PyPy note (#​18548)
  • Move Pyodide to Tier 2 in the Python support policy (#​18561)
  • Move Rust and Python version support out of the Platform support policy (#​18535)
  • Update Docker guide with changes from uv-docker-example (#​18558)
  • Update the Python version policy (#​18559)
Install uv 0.10.12
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.10.12/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.10.12/uv-installer.ps1 | iex"
Download uv 0.10.12
File Platform Checksum
uv-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
uv-x86_64-apple-darwin.tar.gz Intel macOS checksum
uv-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
uv-i686-pc-windows-msvc.zip x86 Windows checksum
uv-x86_64-pc-windows-msvc.zip x64 Windows checksum
uv-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
uv-i686-unknown-linux-gnu.tar.gz x86 Linux checksum
uv-powerpc64-unknown-linux-gnu.tar.gz PPC64 Linux checksum
uv-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux checksum
uv-riscv64gc-unknown-linux-gnu.tar.gz RISCV Linux checksum
uv-s390x-unknown-linux-gnu.tar.gz S390x Linux checksum
uv-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
uv-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux checksum
uv-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
uv-i686-unknown-linux-musl.tar.gz x86 MUSL Linux checksum
uv-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum
uv-arm-unknown-linux-musleabihf.tar.gz ARMv6 MUSL Linux (Hardfloat) checksum
uv-armv7-unknown-linux-musleabihf.tar.gz ARMv7 MUSL Linux checksum
Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo astral-sh/uv

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

v0.10.11

Compare Source

Release Notes

Released on 2026-03-16.

Enhancements
  • Fetch Ruff release metadata from an Astral mirror (#​18358)
  • Use PEP 639 license metadata for uv itself (#​16477)
Performance
  • Improve distribution id performance (#​18486)
Bug fixes
  • Allow --project to refer to a pyproject.toml directly and reduce to a warning on other files (#​18513)
  • Disable SYSTEM_VERSION_COMPAT when querying interpreters on macOS (#​18452)
  • Enforce available distributions for supported environments (#​18451)
  • Fix uv sync --active recreating active environments when UV_PYTHON_INSTALL_DIR is relative (#​18398)
Documentation
  • Add missing -o requirements.txt in uv pip compile example (#​12308)
  • Link to organization security policy (#​18449)
  • Link to the AI policy in the contributing guide (#​18448)
Install uv 0.10.11
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.10.11/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.10.11/uv-installer.ps1 | iex"
Download uv 0.10.11
File Platform Checksum
uv-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
uv-x86_64-apple-darwin.tar.gz Intel macOS checksum
uv-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
uv-i686-pc-windows-msvc.zip x86 Windows checksum
uv-x86_64-pc-windows-msvc.zip x64 Windows checksum
uv-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
uv-i686-unknown-linux-gnu.tar.gz x86 Linux checksum
uv-powerpc64-unknown-linux-gnu.tar.gz PPC64 Linux checksum
uv-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux checksum
uv-riscv64gc-unknown-linux-gnu.tar.gz RISCV Linux checksum
uv-s390x-unknown-linux-gnu.tar.gz S390x Linux checksum
uv-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
uv-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux checksum
uv-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
uv-i686-unknown-linux-musl.tar.gz x86 MUSL Linux checksum
uv-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum
uv-arm-unknown-linux-musleabihf.tar.gz ARMv6 MUSL Linux (Hardfloat) checksum
uv-armv7-unknown-linux-musleabihf.tar.gz ARMv7 MUSL Linux checksum
Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo astral-sh/uv

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

v0.10.10

Compare Source

Release Notes

Released on 2026-03-13.

Python
Enhancements
  • Add --outdated flag to uv tool list (#​18318)
  • Add riscv64 musl target to build-release-binaries workflow (#​18228)
  • Fetch Ruff from an Astral mirror (#​18286)
  • Improve error handling for platform detection in Python downloads (#​18453)
  • Warn if --project directory does not exist (#​17714)
  • Warn when workspace member scripts are skipped due to missing build system (#​18389)
  • Update build backend versions used in uv init (#​18417)
  • Log explicit config file path in verbose output (#​18353)
  • Make uv cache clear an alias of uv cache clean (#​18420)
  • Reject invalid classifiers, warn on license classifiers in uv_build (#​18419)
Preview features
  • Add links to uv audit output (#​18392)
  • Output/report formatting for uv audit (#​18193)
  • Switch to batched OSV queries for uv audit (#​18394)
Bug fixes
  • Avoid sharing version metadata across indexes (#​18373)
  • Bump zlib-rs to 0.6.2 to fix panic on decompression of large wheels on Windows (#​18362)
  • Filter out unsupported environment wheels (#​18445)
  • Preserve absolute/relative paths in lockfiles (#​18176)
  • Recreate Python environments under uv tool install --force (#​18399)
  • Respect timestamp and other cache keys in cached environments (#​18396)
  • Simplify selected extra markers in uv export (#​18433)
  • Send pyx mint-token requests with a proper Content-Type (#​18334)
  • Fix Windows operating system and version reporting (#​18383)
Documentation
  • Update the platform support policy with a tier 3 section including freebsd and 32-bit windows (#​18345)
Install uv 0.10.10
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.10.10/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.10.10/uv-installer.ps1 | iex"
Download uv 0.10.10
File Platform Checksum
uv-aarch64-apple-darwin.tar.gz Apple Silicon macOS [checks

Note

PR body was truncated to here.

@renovate renovate Bot added the dependencies Pull requests that update a dependency file label Aug 7, 2025
@renovate
renovate Bot force-pushed the renovate/pypi-uv-vulnerability branch from c14217a to 13bc82f Compare October 22, 2025 02:08
@renovate renovate Bot changed the title Update dependency uv to v0.8.6 [SECURITY] Update dependency uv to v0.9.5 [SECURITY] Oct 22, 2025
@renovate
renovate Bot force-pushed the renovate/pypi-uv-vulnerability branch from 13bc82f to 5f5ef92 Compare October 30, 2025 03:31
@renovate renovate Bot changed the title Update dependency uv to v0.9.5 [SECURITY] Update dependency uv to v0.9.6 [SECURITY] Oct 30, 2025
@renovate renovate Bot changed the title Update dependency uv to v0.9.6 [SECURITY] Update dependency uv to v0.9.6 [SECURITY] - autoclosed Mar 27, 2026
@renovate renovate Bot closed this Mar 27, 2026
@renovate
renovate Bot deleted the renovate/pypi-uv-vulnerability branch March 27, 2026 01:02
@github-project-automation github-project-automation Bot moved this from Do to Done in boilerdata Mar 27, 2026
@renovate renovate Bot changed the title Update dependency uv to v0.9.6 [SECURITY] - autoclosed Update dependency uv to v0.9.6 [SECURITY] Mar 30, 2026
@renovate renovate Bot reopened this Mar 30, 2026
@renovate
renovate Bot force-pushed the renovate/pypi-uv-vulnerability branch 2 times, most recently from 5f5ef92 to 8b5dac5 Compare March 30, 2026 20:54
@github-project-automation github-project-automation Bot moved this from Done to Doing in boilerdata Mar 30, 2026
@renovate
renovate Bot force-pushed the renovate/pypi-uv-vulnerability branch from 8b5dac5 to eb7fe97 Compare April 10, 2026 21:11
@renovate renovate Bot changed the title Update dependency uv to v0.9.6 [SECURITY] Update dependency uv to v0.11.6 [SECURITY] Apr 10, 2026
@renovate renovate Bot changed the title Update dependency uv to v0.11.6 [SECURITY] Update dependency uv to v0.11.6 [SECURITY] - autoclosed Apr 27, 2026
@renovate renovate Bot closed this Apr 27, 2026
@github-project-automation github-project-automation Bot moved this from Doing to Done in boilerdata Apr 27, 2026
@renovate renovate Bot changed the title Update dependency uv to v0.11.6 [SECURITY] - autoclosed Update dependency uv to v0.11.6 [SECURITY] Apr 27, 2026
@renovate renovate Bot reopened this Apr 27, 2026
@renovate
renovate Bot force-pushed the renovate/pypi-uv-vulnerability branch from c124a7f to eb7fe97 Compare April 27, 2026 23:31
@github-project-automation github-project-automation Bot moved this from Done to Doing in boilerdata Apr 27, 2026
@renovate
renovate Bot force-pushed the renovate/pypi-uv-vulnerability branch from eb7fe97 to c124a7f Compare April 27, 2026 23:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

Status: Doing

Development

Successfully merging this pull request may close these issues.

0 participants