Loading...
Skip to main content

CVE-2026-33056 — Vulnerability in tar — CVE Details

MEDIUM

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

Published March 20, 2026Updated September 10, 2026Source: osv

Summary

## Summary 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. ## Reproducer A malicious tarball contains two entries: (1) a symlink `foo` pointing to an arbitrary external directory, and (2) a directory entry `foo/.` (or just `foo`). When unpacked, `create_dir("foo")` fails with `EEXIST` because the symlink is already on disk. The `fs::metadata()` check then follows the symlink, sees a directory at the target, and allows processing to continue. The directory entry's mode bits are then applied via `chmod`, which also follows the symlink — modifying the permissions of the external target directory. ## Fix The fix is very simple, we now use `fs::symlink_metadata()` in `unpack_dir`, so symlinks are detected and rejected rather than followed. ## Credit This issue was reported by @xokdvium - thank you!

Advisory Timeline

  • First published March 20, 2026 (206 days ago).
  • Last revised September 10, 2026 — 173 days after initial publication.

Remediation

Upgrade to the fixed version using your package manager.

Cargo
Update tar to 0.4.45 or later
cargo update -p tar --precise 0.4.45

After upgrading, run your dependency scanner again to confirm the vulnerability is resolved.

Affected Packages (1)

Affects 1 ecosystem: crates.io (1).

PackageEcosystemAffectedFixed In
tar
crates.io
All versions0.4.45

Vulnerability Classification

Common Weakness Enumeration (CWE) identifiers for this vulnerability type.

CVSS Score Breakdown

What the CVSS (Common Vulnerability Scoring System) 6.5 score means for each attack dimension.

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
None

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N

Frequently Asked Questions

What is CVE-2026-33056?
tar-rs `unpack_in` can chmod arbitrary directories by following symlinks This vulnerability has been assigned a severity rating of MEDIUM (CVSS score: 6.5/10).
How do I check if my project is affected by CVE-2026-33056?
CVE-2026-33056 affects tar. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2026-33056 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
6.5

Exploitation requires specific conditions or has limited impact. Remediate within weeks.

Also Known As

GHSA-j4xf-2g29-59ph
RUSTSEC-2026-0067

Related CVEs

Check if you're affected

Scan your dependencies to see if this vulnerability affects your projects.

Scan Your Dependencies