REDHAT-BUG-2481315: High severity Perl Archive::Tar vulnerability
Archive::Tar versions before 3.10 for Perl allow memory exhaustion via attacker controlled entry size field in tar header.
readtar() reads each entry's payload with $handle->read($$data, $block), where $block is derived from the entry's 12-byte size field in the tar header with no upper bound on that value.
A crafted header declaring a multi-gigabyte size causes Perl to allocate a scalar of that size.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Perl Archive::Tarto a version that resolves this vulnerability.Fixed in 3.10 - Compensating control
Apply a compensating control by preventing untrusted tar archives from being processed by Perl/Archive::Tar (e.g., restrict who can supply uploads/inputs and/or isolate the extraction process) to mitigate memory exhaustion from attacker-controlled 12-byte tar header size fields.