Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network vector retained as attacker supplies directory remotely; S:C because exploitation escapes intended source root to read arbitrary filesystem files.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
tar-rs versions 0.4.11 through 0.4.46 contain a symlink escape vulnerability in the Builder::append_dir_all() function that allows attackers to read files outside the intended source root directory by planting symlinks in an attacker-controlled directory. When a privileged process archives an untrusted directory, the function follows symlinks without verifying that resolved targets remain within the source root, causing out-of-bounds files to be included in the archive as regular files and disclosed to the attacker.
AnalysisAI
Symlink escape in tar-rs versions 0.4.11 through 0.4.46 exposes arbitrary host filesystem files when a privileged process archives an attacker-controlled directory using the Builder::append_dir_all() function. The function resolves symbolic links during recursive directory traversal without verifying that resolved target paths remain within the specified source root, causing out-of-bounds files to be silently captured into the archive as regular file entries and disclosed to the attacker. A publicly available proof-of-concept exists; the CVE is not listed in CISA KEV, but low attack complexity combined with high confidentiality impact makes this a meaningful risk for affected Rust-based archiving pipelines.
Technical ContextAI
tar-rs is a Rust crate for reading and writing tar archives, attributed here under the composefs project (CPE: cpe:2.3:a:composefs:tar-rs:*:*:*:*:*:*:*:*). The vulnerable function, Builder::append_dir_all(), performs recursive directory traversal to append all contents to a tar archive. The root cause is CWE-59 (Improper Link Resolution Before File Access - 'Link Following'): during traversal, the function resolves symbolic links encountered in the directory tree without confirming that the resolved absolute path remains inside the caller-supplied source root. On Unix/Linux filesystems, symlinks are filesystem-level pointers to arbitrary paths; following them without bounds-checking during archiving is functionally equivalent to a path traversal attack. The result is that the archive silently includes the contents of files from outside the intended directory scope, presented as regular file entries with no indication that a symlink was followed. This class of symlink-escape vulnerability in archiving libraries is well-documented and has previously appeared in Go, Python, and Java archive implementations.
RemediationAI
No vendor-released patch version is identified at time of analysis; the fix version is not stated in any available reference. The VulnCheck advisory at https://www.vulncheck.com/advisories/tar-rs-symlink-escape-via-append-dir-all and the tar-rs release history on crates.io should be monitored for an updated patched release. Until a patch is available, the primary compensating control is to avoid calling Builder::append_dir_all() on any directory whose symlinks are not fully trusted: pre-archiving validation should traverse the source directory, resolve each symlink's target, and reject or skip any entry whose canonical path falls outside the source root - this adds I/O overhead proportional to directory size but eliminates the disclosure vector entirely. For services that must archive untrusted input, running the archiving process inside a container or chroot with a restricted filesystem view limits the sensitivity of any files that could be captured even if a symlink is followed. Applying Linux capabilities restrictions (dropping CAP_DAC_READ_SEARCH) or seccomp profiles to the archiving process further reduces the blast radius by bounding the attacker's achievable file reads to what the process's effective UID can normally access.
Same weakness CWE-59 – Improper Link Resolution Before File Access
View allSame technique Information Disclosure
View allVendor StatusVendor
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-55682
GHSA-c2qp-v5vm-7vxf