On Thu, Jun 04, 2026 at 11:04:15PM +0300, Niko Tyni wrote:
> Package: perl
> Version: 5.40.1-6
> Severity: important
> Tags: security upstream
> X-Debbugs-Cc: [email protected]
> Forwarded: 
> https://github.com/jib/archive-tar-new/commit/f9af01426038e29d9578825a0cd3626946ab08c7
> Control: found -1 5.32.1-4
> Control: found -1 5.36.0-1
> Control: found -1 5.42.2-1
> 
> The following vulnerability was published[0] for Archive-Tar (bundled with 
> perl):
> 
> 
>   CVE ID:  CVE-2026-9538
>   Distribution:  Archive-Tar
>   Versions:  before 3.10
> 
>   MetaCPAN:  https://metacpan.org/dist/Archive-Tar
>   VCS Repo:  https://github.com/jib/archive-tar-new
> 
>   Archive::Tar versions before 3.10 for Perl allow memory exhaustion via
>   attacker controlled entry size field in tar header
>   
>   Description
>   -----------
>   Archive::Tar versions before 3.10 for Perl allow memory exhaustion via
>   attacker controlled entry size field in tar header.
>   
>   _read_tar() 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.
>   
> [0] https://lists.security.metacpan.org/cve-announce/msg/40396448/

The upstream issue https://github.com/jib/archive-tar-new/issues/47
indicates that the current fix is not very effective.

I'm not sure what Archive::Tar should do when encountering an archive
with a huge entry size. But seeking forward 512 byte blocks one at a time
and outputting an error message for each block until the next entry is
found does not sound quite right.

I'm working on a trixie update with the other two Archive-Tar fixes
(CVE-2026-42496 and CVE-2026-42497, symlink / hardlink directory
traversal). But I think I'll skip this one for now, although it's already
in forky and sid. Guess that needs a separate bug.

-- 
Niko Tyni       [email protected]

Reply via email to