CVE-2026-42497
HighCVSS 7.5Exploitation Probability (EPSS)
Low risk34th percentile - higher than 34% of all known CVEs
Summary
A vulnerability in Archive::Tar for Perl before version 3.08 allows extraction of hardlinks to attacker-controlled paths outside the extraction directory. The _make_special_file() function passes the tar header's linkname to link() without validating absolute paths or '..' segments, creating a hardlink to the victim file. A subsequent write through the extracted name modifies the victim file, and the _extract_file() block (guarded only against symlinks) applies permissions, owner, and timestamps to the shared inode.
Risk Assessment
An attacker can modify any file on the system accessible by the extraction process, potentially leading to privilege escalation or system integrity compromise.
Recommendation
Update Archive::Tar to version 3.08 or later.
Other vulnerabilities in Archive::Tar
See all- CVE-2026-42496Critical
Archive::Tar versions before 3.08 for Perl extract symlinks with attacker controlled targets outside the extraction directory. _make_special_file() passes the tar header's linkname to symlink() without validating it against absolute paths or .. segments. The secure-extract mode check that guards regular file extraction does not cover the symlink target. A subsequent open through the extracted name reads or writes the attacker chosen path.
- CVE-2026-9538High
In the Archive::Tar library for Perl versions before 3.10, memory exhaustion is possible via an attacker-controlled entry size field in the tar header. The _read_tar() function allocates a scalar based on the header size without an upper bound.
Original NVD description (English source)
Archive::Tar versions before 3.08 for Perl extract hardlinks to attacker controlled paths outside the extraction directory. _make_special_file() passes the tar header's linkname to link() without validating it against absolute paths or .. segments, creating a hardlink that shares the victim file's inode. A subsequent write through the extracted name modifies the victim file, and the post-extraction chmod, chown, and utime block in _extract_file() (guarded only against symlinks via -l) applies the tar header's mode, owner, and timestamps to the shared inode during extraction alone.

