tar-rs: unpack_in can chmod arbitrary directories by following symlinks
Summary
tar-rs: unpack_in can chmod arbitrary directories by following symlinks
Original description
The description as published by the source.
tar-rs is a tar archive reading/writing library for Rust. In versions 0.4.44 and below, when unpacking a tar archive, the tar crate's unpack_dir function uses fs::metadata() to check whether a path that already exists is a directory. Because fs::metadata() follows symbolic links, a crafted tarball containing a symlink entry followed by a directory entry with the same name causes the crate to treat the symlink target as a valid existing directory — and subsequently apply chmod to it. This allows an attacker to modify the permissions of arbitrary directories outside the extraction root. This issue has been fixed in version 0.4.45.
Source: OSV.dev (Open Source Vulnerabilities) NVD GitHub Advisory OSV
Fix status by distribution
Fixed packages published by each distribution for this CVE
- Alpine Linux ALPINE-CVE-2026-33056 rust Fixed in: 1.78.0-r1
- Debian DEBIAN-CVE-2026-33056 rust-tar
- Ubuntu UBUNTU-CVE-2026-33056 rustc
References
- advisory github.com
- advisory github.com
- advisory nvd.nist.gov
- patch github.com