CVE-2026-33056

tar-rs: unpack_in can chmod arbitrary directories by following symlinks

Published Mar 20, 2026 CVSS 4.0 · 5.1 Medium EPSS < 1% KEV · Not listed
Description
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.

Analysis

AI-generated

Technical impact

The tar-rs library includes a unpack_dir function that performs a metadata check on paths during extraction. Because the check uses fs::metadata(), which follows symbolic links, a malicious tarball that places a symlink entry immediately before a directory entry of the same name allows the extractor to treat the symlink target as a valid directory and apply chmod to it. This flaw permits an attacker to change the permissions of any directory that the symlink points to, even if that directory lies outside the intended extraction root. The vulnerability enables unauthorized modification of directory permissions, potentially facilitating privilege escalation or further compromise of the host system.

Affected Systems

The affected library is tar-rs, maintained by alexcrichton. Vulnerable versions include 0.4.44 and all earlier releases. The component is used in Rust projects that perform tar archive extraction.

Risk and Exploitability

The CVSS base score is 5.1, indicating moderate severity. The EPSS score is below 1%, suggesting low current exploitation probability, and the vulnerability is not listed in the CISA KEV catalog. Exploitation requires delivering a crafted tar archive to a process that uses tar-rs for extraction, which is typically via software that accepts user-supplied archives. While the risk is moderate, the lack of widespread public exploitation and the dependency on a malicious tarball make immediate internal patching a prudent measure.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade tar-rs to version 0.4.45 or later.
  • If upgrading is not immediately feasible, block or sanitize untrusted tar archives until a patch is applied.

Generated by OpenCVE AI on March 24, 2026 at 17:29 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-j4xf-2g29-59ph tar-rs `unpack_in` can chmod arbitrary directories by following symlinks
Ubuntu USN Ubuntu USN USN-8138-1 tar-rs vulnerability
Ubuntu USN Ubuntu USN USN-8139-1 cargo-c vulnerability
Ubuntu USN Ubuntu USN USN-8168-1 Rust vulnerability
Ubuntu USN Ubuntu USN USN-8168-2 Rust vulnerability
Ubuntu USN Ubuntu USN USN-8138-2 tar-rs vulnerability
History
Type Values Removed Values Added
First Time appeared Tar Project
Tar Project tar
CPEs cpe:2.3:a:tar_project:tar:*:*:*:*:*:rust:*:*
Vendors & Products Tar Project
Tar Project tar
Metrics cvssV3_1

{'score': 4.4, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N'}

cvssV3_1

{'score': 6.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N'}

Type Values Removed Values Added
Weaknesses CWE-59
References
Metrics threat_severity

None

cvssV3_1

{'score': 4.4, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N'}

threat_severity

Moderate

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Alexcrichton
Alexcrichton tar-rs
Vendors & Products Alexcrichton
Alexcrichton tar-rs
Type Values Removed Values Added
Description 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.
Title tar-rs: unpack_in can chmod arbitrary directories by following symlinks
Weaknesses CWE-61
References
Metrics cvssV4_0

{'score': 5.1, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N'}

Weaknesses
  • CWE-59

    Improper Link Resolution Before File Access ('Link Following')

  • CWE-61

    UNIX Symbolic Link (Symlink) Following

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Mar 20, 2026, 12:59 PM
Reserved
Mar 17, 2026, 6:10 PM
Status
Analyzed
Published
Mar 20, 2026, 8:16 AM
Modified
Jun 17, 2026, 10:36 AM
Severity
Moderate
Public date
Mar 20, 2026, 7:11 AM