CVE-2025-15649: IO::Uncompress::Unzip versions before 2.215 for Perl propagate uncaught exception when parsing zip header with malformed DOS date Stig Palmquist 27 May 2026 02:27 UTC

========================================================================
CVE-2025-15649                                       CPAN Security Group
========================================================================

        CVE ID:  CVE-2025-15649
  Distribution:  IO-Compress
      Versions:  before 2.215

      MetaCPAN:  https://metacpan.org/dist/IO-Compress
      VCS Repo:  https://github.com/pmqs/IO-Compress

IO::Uncompress::Unzip versions before 2.215 for Perl propagate uncaught
exception when parsing zip header with malformed DOS date

Description
-----------
IO::Uncompress::Unzip versions before 2.215 for Perl propagate uncaught
exception when parsing zip header with malformed DOS date.

_dosToUnixTime() decodes the local-file-header last-modification date
field and calls Time::Local::timelocal() without an eval guard. A
header whose date field decodes to an out-of-range month, day, or hour
causes timelocal() to die.

The exception propagates out of IO::Uncompress::Unzip->new($file) where
callers expect undef plus $UnzipError.

Problem types
-------------
- CWE-248 Uncaught Exception

Solutions
---------
Upgrade to IO-Compress 2.215 or later.

References
----------
https://github.com/pmqs/IO-Compress/commit/fd28c1d2374eee9811f6d0c5bddc0957abdf1da8.patch
https://github.com/pmqs/IO-Compress/issues/65
https://metacpan.org/release/PMQS/IO-Compress-2.215/changes

Timeline
--------
- 2025-10-25: Issue reported.
- 2026-01-30: Version 2.215 released.