Security Advisories (3)
CVE-2025-15649 (2026-05-27)

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.

CVE-2026-48959 (2026-05-27)

IO::Uncompress::Unzip versions before 2.220 for Perl allow CPU exhaustion via per-byte read loop in fastForward. fastForward() compares length $offset (the digit count of the offset, 1 to 19) against the chunk size $c instead of $offset itself, so $c shrinks from 16 KiB to 1-19 bytes per iteration. Extracting a named entry from an attacker supplied zip via IO::Uncompress::Unzip->new($zip, Name => $target) drives a per-byte read loop scaling with the entry's compressed size, up to the non-Zip64 4 GiB cap.

CVE-2026-48962 (2026-05-27)

IO::Compress versions before 2.220 for Perl can execute arbitrary code in File::GlobMapper via an attacker-controlled output glob. _parseOutputGlob() wraps the caller-supplied output glob string in double quotes and stores it in the parser state; _getFiles() then runs the stored expression through eval STRING. A literal double quote in the output glob closes the dquote wrapper, and the characters that follow are evaluated as Perl. Arbitrary Perl in the output glob executes at the calling process's privilege.

Documentation

create a zip file from stdin
display the internal structure of zip files
Frequently Asked Questions about IO::Compress

Modules

Interface to zlib compression library
Extend File Glob to Allow Input and Output Files
Base Class for IO::Compress modules
Write bzip2 files/buffers
Write RFC 1950 files/buffers
Write RFC 1952 files/buffers
Write RFC 1951 files/buffers
Write zip files/buffers
Uncompress zlib-based (zip, gzip) file/buffer
Uncompress gzip, zip, bzip2, zstd, xz, lzma, lzip, lzf or lzop file/buffer
Base Class for IO::Uncompress modules
Read bzip2 files/buffers
Read RFC 1952 files/buffers
Read RFC 1950 files/buffers
Read RFC 1951 files/buffers
Read zip files/buffers

Provides

in lib/IO/Compress/Adapter/Bzip2.pm
in lib/IO/Compress/Adapter/Deflate.pm
in lib/IO/Compress/Adapter/Identity.pm
in lib/IO/Compress/Base/Common.pm
in lib/IO/Compress/Gzip/Constants.pm
in lib/IO/Compress/Zip/Constants.pm
in lib/IO/Compress/Zlib/Constants.pm
in lib/IO/Compress/Zlib/Extra.pm
in lib/IO/Uncompress/Adapter/Bunzip2.pm
in lib/IO/Uncompress/Adapter/Identity.pm
in lib/IO/Uncompress/Adapter/Inflate.pm
U64
in lib/IO/Compress/Base/Common.pm
in lib/Compress/Zlib.pm
in lib/Compress/Zlib.pm