Tar Rs
Monthly
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.
The tar-rs Rust library versions 0.4.44 and below contain a logic flaw where PAX (POSIX.1-2001) size headers are conditionally skipped when the base tar header size is nonzero, causing the library to parse tar archives differently than other standard tar implementations like Go's archive/tar. This discrepancy allows an attacker to craft malicious tar archives that appear different when unpacked by tar-rs versus other parsers, potentially leading to information disclosure or file confusion attacks. The vulnerability affects any application using tar-rs to parse untrusted archives and expecting consistent behavior with other tar parsers, with a moderate CVSS score of 5.1 indicating low attack complexity and network accessibility.
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.
The tar-rs Rust library versions 0.4.44 and below contain a logic flaw where PAX (POSIX.1-2001) size headers are conditionally skipped when the base tar header size is nonzero, causing the library to parse tar archives differently than other standard tar implementations like Go's archive/tar. This discrepancy allows an attacker to craft malicious tar archives that appear different when unpacked by tar-rs versus other parsers, potentially leading to information disclosure or file confusion attacks. The vulnerability affects any application using tar-rs to parse untrusted archives and expecting consistent behavior with other tar parsers, with a moderate CVSS score of 5.1 indicating low attack complexity and network accessibility.