astral-tokio-tar CVE-2025-62518
HIGHAttack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft tar with PAX size override and ustar size=0
-
DeliveryDeliver archive to victim application
-
ExploitVictim extracts untrusted archive via vulnerable parser
-
ExecutionParser desyncs and treats file content as entries
-
ImpactSmuggled entries written to attacker-chosen paths
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Type safety enforcement
MITRE ATT&CK
1 technique across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that an application using astral-tokio-tar <= 0.5.5 (or the related tokio-tar <= 0.3.1) parse/extract an attacker-supplied tar archive; the archive must contain a PAX-extended header with a size override (e.g. size=1048576) paired with a ustar header size of zero, and file data that begins with valid tar header structures. The key limiting factor is UI:R - a victim or automated pipeline must actually process the untrusted archive; there is no authentication requirement (PR:N). The vendor states there are no workarounds and no mitigating configuration, so any default use of a vulnerable version against untrusted input is exposed; the realistic blast radius is largest in automated ingestion paths such as package installers (e.g. uv) that unpack remote archives. |
| Impact | Signals are moderately aligned toward a real but conditional priority. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N, 8.1 High) indicates a network-delivered, low-complexity, unauthenticated flaw whose only gating factor is user/application interaction (UI:R) - a victim must extract an attacker-supplied archive. CWE-843 (type/entry confusion via PAX/ustar desynchronization) and the GHSA description support high confidentiality and integrity impact (attacker-controlled filesystem access, potential code execution or credential exfiltration) with no direct availability impact, consistent with A:N. Counterbalancing this, EPSS is only 0.70% (52nd percentile), there is no CISA KEV listing, and no public exploit is identified in the provided data (only the vendor patch commit and a regression test), so there is no evidence of active or at-scale exploitation. The 'Memory Corruption' tag is misleading: this is a safe-Rust parsing-logic desync, not a memory-safety bug, so the real impact is archive entry smuggling rather than memory corruption. Net: a genuine high-severity supply-chain parsing flaw that matters most where the library extracts untrusted archives (notably Astral's uv), but current exploitation probability is low and interaction-dependent rather than wormable. |
| Exploit ScenarioDerived | An attacker crafts a malicious tar archive whose outer entry carries a PAX extended header declaring size=N while the ustar header declares size=0, with the file body beginning with valid tar header bytes; a victim application built on astral-tokio-tar (e.g. via uv) extracts this untrusted archive. The parser advances by the ustar size (0 bytes) instead of the PAX size, so smuggled inner content is reinterpreted as additional legitimate archive entries and written to the filesystem. No public exploit code is identified in the provided data, but the patch commit and the regression test (pax-header-precedence.tar) demonstrate the exact trigger, and exploitation requires that the victim process the attacker's archive (UI:R). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 08, 2026
PAX/ustar header desynchronization in astral-tokio-tar 0.5.5 and earlier lets unauthenticated attackers smuggle hidden archive entries that the parser misreads as top-level files, potentially producing attacker-controlled filesystem writes when the library extracts an untrusted tarball - the most consequential downstream consumer being the uv Python package installer. Per CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N (8.1), no authentication is needed but a user or automated ingestion pipeline must actually process the crafted archive (UI:R), and the vendor states there are no workarounds, so upgrading to 0.5.6 is the only reliable fix. Risk signals are moderately aligned: EPSS is low at 0.70% (52nd percentile), there is no CISA KEV listing and no public exploit identified at time of analysis, though the disclosure is accompanied by public technical writeups ("Tarmageddon") and a demonstration repository.
RemediationAI
Vendor-released patch: astral-tokio-tar 0.5.6 - upgrade the crate to 0.5.6 (or later) and rebuild; the fix is commit 22b3f884adb7a2adf1d3a8d03469533f5cbc8318 and includes the pax_precedence regression test. Because the advisory states there are no workarounds or mitigating configuration, the only authoritative fix is the upgrade; for the related tokio-tar <= 0.3.1, where the advisory lists no fixed version, the practical options are to migrate callers to astral-tokio-tar 0.5.6 or to stop feeding untrusted archives to the older crate. Downstream users of uv should follow GHSA-w476-p2h3-79g9 and update uv to the release that pins astral-tokio-tar 0.5.6, since package installation is the highest-value attack path (automated unpacking of remote archives with no human in the loop beyond the UI:R trigger). Where an immediate upgrade is impossible, treat tarball extraction as untrusted code execution: run extraction in a throwaway, unprivileged container or sandbox with a read-only root and no credential mounts, and canonicalize archives before parsing by re-writing them with a trusted tar implementation (this defeats zero-size ustar headers with PAX overrides but adds a processing step and cannot be applied to archives that must be preserved byte-for-byte). Disabling PAX support, skipping PAX "size" records, or trusting only the ustar field is explicitly not a safe mitigation because it is the exact precedence error being exploited. Advisory and fix references: https://github.com/astral-sh/tokio-tar/security/advisories/GHSA-j5gw-2vrg-8fgx and https://github.com/astral-sh/tokio-tar/commit/22b3f884adb7a2adf1d3a8d03469533f5cbc8318.
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in cargo
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The bug is a type/boundary confusion (CWE-843) inside the tar stream state machine of astral-tokio-tar, an async Rust tar reader/writer forked from async-tar (itself derived from tar-rs); the same fork family of Rust tar parsers was notified in this coordinated disclosure. TAR entries are laid out in 512-byte blocks, and the parser advances its stream position by current_pos + 512 + pad_to_512(entry_size) after each header. When an archive carries PAX extended headers with a "size" override (for example size=1048576) while the corresponding ustar header declares a size of zero, the vulnerable code trusted the ustar size and advanced 0 bytes instead of the PAX size, so the parser's cursor landed on file payload that was then interpreted as legitimate tar headers - a header/data desynchronization enabling archive-entry smuggling. The fix commit 22b3f884adb7a2adf1d3a8d03469533f5cbc8318 threads a pax_extensions buffer through the Entries state tuple (extending the current tuple to (u64, Option<Header>, usize, Option<GnuExtSparseHeader>, Option<Vec<u8>>)), and in poll_next_raw now parses the pending PAX records and overrides header size, uid and gid before computing the next position, with a regression test pax_precedence plus a crafted pax-header-precedence.tar fixture. Practically, the library is plumbing: its real-world exposure flows from applications that unpack remote archives, as documented in the downstream uv advisory GHSA-w476-p2h3-79g9.
Know when Rust 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
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
Archive is delivered remotely (AV:N) and triggers reliably (AC:L) without auth (PR:N), but a victim must extract it (UI:R); smuggled entries yield high C/I with no availability impact.
Primary rating from Vendor (github).
CVSS VectorVendor: github
DescriptionCVE.org
astral-tokio-tar is a tar archive reading/writing library for async Rust. Versions of astral-tokio-tar prior to 0.5.6 contain a boundary parsing vulnerability that allows attackers to smuggle additional archive entries by exploiting inconsistent PAX/ustar header handling. When processing archives with PAX-extended headers containing size overrides, the parser incorrectly advances stream position based on ustar header size (often zero) instead of the PAX-specified size, causing it to interpret file content as legitimate tar headers. This issue has been patched in version 0.5.6. There are no workarounds.
Executive ViewAI
A high-severity vulnerability in the astral-tokio-tar library (versions 0.5.5 and earlier) could enable unauthenticated attackers to manipulate file extraction in the widely used uv Python package installer, potentially allowing unauthorized writes to the filesystem when processing malicious archives. Organizations relying on uv for dependency management or automated ingestion of Python packages are at risk of supply chain compromise, which could lead to data integrity issues or broader system compromise. Leadership should prioritize patching to prevent potential exploitation in development and CI/CD environments.
Apply vendor patch.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Command injection via Windows CreateProcess argument parsing affects multiple language runtimes and tooling (Node.js, PH
In the standard library in Rust before 1.52.0, a double free can occur in the Vec::from_iter function if freeing the ele
In the standard library in Rust before 1.52.0, the Zip implementation can report an incorrect size due to an integer ove
Stored cross-site scripting and open redirect in Warpgate's SSO endpoints (versions prior to 0.25.5) allow an unauthenti
library/std/src/net/parser.rs in Rust before 1.53.0 does not properly consider extraneous zero characters at the beginni
Denial of service in the Vector observability pipeline's `logstash` source (versions 0.15.0 through 0.56.x) allows a rem
The Rust Programming Language Standard Library 1.34.x before 1.34.2 contains a stabilized method which, if overridden, c
In the standard library in Rust before 1.52.0, the Zip implementation calls __iterator_get_unchecked() more than once fo
In the standard library in Rust before 1.50.0, read_to_end() does not validate the return value from Read in an unsafe c
Cargo prior to Rust 1.26.0 may download the wrong dependency if your package.toml file uses the `package` configuration
Rust is a programming language. Rated critical severity (CVSS 10.0), this vulnerability is remotely exploitable, no auth
The Rust Programming Language Standard Library version 1.29.0, 1.28.0, 1.27.2, 1.27.1, 127.0, 126.2, 126.1, 126.0 contai
NVD
CVE.org
EPSS
GitHub
Exploit-DB