Every CVE Search/ Get API key

CVE-2026-48959

IO::Uncompress::Unzip versions before 2.220 for Perl allow CPU exhaustion via per-byte read loop in fastForward

7.5 HighFix available

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.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
High

Exploit likelihood

0.55%Up 0.5 points since May 27, 2026
90%50%10%1%

What each source reports

CVE List Score used 7.5

IO::Uncompress::Unzip versions before 2.220 for Perl allow CPU exhaustion via per-byte read loop in fastForward

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.

Record
CVE-2026-48959
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-407
Updated
2026-11-02
EUVDEUVD-2026-32043 7.5

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.

Record
EUVD-2026-32043
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
GitHub AdvisoriesGHSA-7vxx-5gqr-7r44 7.5

IO::Uncompress::Unzip versions before 2.220 for Perl allow CPU exhaustion via per-byte read loop...

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.

Record
GHSA-7vxx-5gqr-7r44
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-407
Updated
2026-11-02
NVD 7.5

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.

Record
CVE-2026-48959
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-407
Updated
2026-11-02
OSVALPINE-CVE-2026-48959 7.5

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.

Record
ALPINE-CVE-2026-48959
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-03
OSVBELL-CVE-2026-48959 7.5
Record
BELL-CVE-2026-48959
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
Show 9 moreShow less
OSV 7.5

IO::Uncompress::Unzip versions before 2.220 for Perl allow CPU exhaustion via per-byte read loop in fastForward

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.

Record
CVE-2026-48959
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-407
Updated
2026-11-02
OSVDEBIAN-CVE-2026-48959 7.5

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.

Record
DEBIAN-CVE-2026-48959
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVUBUNTU-CVE-2026-48959 7.5

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.

Record
UBUNTU-CVE-2026-48959
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVAZL-89307 No score

CVE-2026-48959 affecting package perl for versions less than 5.38.2-512

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.

Record
AZL-89307
Updated
2026-11-05
OSVMGASA-2026-0158 No score

Updated perl-IO-Compress package fixes security vulnerabilities

The updated package fixes security vulnerabilities: IO::Uncompress::Unzip versions before 2.215 for Perl propagate uncaught exception when parsing zip header with malformed DOS date. (CVE-2025-15649) IO::Uncompress::Unzip versions before 2.220 for Perl allow CPU exhaustion via per-byte read loop in fastForward. (CVE-2026-48959) IO::Compress versions before 2.220 for Perl can execute arbitrary code in File::GlobMapper via an attacker-controlled output glob. (CVE-2026-48962)

Record
MGASA-2026-0158
Updated
2026-11-02
OSVROOT-OS-DEBIAN-11-CVE-2026-48959 No score

CVE-2026-48959 in perl - Patched by Root

Root has patched CVE-2026-48959 in the perl package for Root:Debian:11. Multiple fixed versions available.

Record
ROOT-OS-DEBIAN-11-CVE-2026-48959
Updated
2026-11-02
OSVROOT-OS-DEBIAN-12-CVE-2026-48959 No score

CVE-2026-48959 in perl - Patched by Root

Root has patched CVE-2026-48959 in the perl package for Root:Debian:12. Multiple fixed versions available.

Record
ROOT-OS-DEBIAN-12-CVE-2026-48959
Updated
2026-11-02
OSVROOT-OS-DEBIAN-13-CVE-2026-48959 No score

CVE-2026-48959 in perl - Patched by Root

Root has patched CVE-2026-48959 in the perl package for Root:Debian:13. Multiple fixed versions available.

Record
ROOT-OS-DEBIAN-13-CVE-2026-48959
Updated
2026-11-02
OSVUSN-8684-1 No score

perl vulnerabilities

It was discovered that Perl incorrectly handled certain arguments to Socket and pack/unpack functions. An attacker could possibly use this issue to read sensitive information from memory. (CVE-2026-12087, CVE-2026-57432)

It was discovered that Perl incorrectly handled regular expressions with a large number of alternation branches. An attacker could possibly use this issue to cause incorrect matching results. (CVE-2026-13221)

It was discovered that Perl incorrectly handled certain files. An attacker could possibly use this issue to cause a denial of service. (CVE-2026-57433, CVE-2025-15649, CVE-2026-48959, CVE-2026-9538)

It was discovered that Perl incorrectly handled certain inputs. An attacker could possibly use this issue to execute arbitrary code. (CVE-2026-48962)

It was discovered that Perl incorrectly handled credential headers during cross-origin redirects in HTTP::Tiny. An attacker could possibly use this issue to expose sensitive information. (CVE-2026-7017)

Record
USN-8684-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
perl
Alpine:v3.24
before 5.42.3-r0
5.42.3-r0
perl
Azure Linux:3
before 5.38.2-512
5.38.2-512
perl
Alpaquita:23
5.36.0-r0 up to 5.36.3-r2
5.36.3-r2
perl
Alpaquita:25
5.40.2-r0 up to 5.40.4-r1
5.40.4-r1
perl
Alpaquita:stream
5.36.0-r0 up to 5.42.2-r1
5.42.2-r1
perl
BellSoft Hardened Containers:23
5.36.0-r0 up to 5.36.3-r2
5.36.3-r2
perl
BellSoft Hardened Containers:25
5.40.2-r0 up to 5.40.4-r1
5.40.4-r1
perl
BellSoft Hardened Containers:stream
5.36.0-r0 up to 5.42.2-r1
5.42.2-r1
libio-compress-perl
Debian:12
before 2.204-1+deb12u1, plus listed versions
2.204-1
2.204-1+deb12u1
libio-compress-perl
Debian:13
before 2.213-1+deb13u1, plus listed versions
2.213-1
2.213-1+deb13u1
Show 25 moreShow less
Affected packages
PackageAffectedFixed
libio-compress-perl
Debian:14
before 2.220-1, plus listed versions
2.213-12.214-12.217-12.219-12.219-2
2.220-1
perl
Debian:12
before 5.36.0-7+deb12u4, plus listed versions
5.36.0-75.36.0-7+deb12u15.36.0-7+deb12u25.36.0-7+deb12u3
5.36.0-7+deb12u4
perl
Debian:13
before 5.40.1-6+deb13u1, plus listed versions
5.40.1-6
5.40.1-6+deb13u1
perl
Debian:14
before 5.40.1-8, plus listed versions
5.40.1-65.40.1-7
5.40.1-8
perl-IO-Compress
Mageia:9
From an advisory covering 4 CVEs
before 2.204.0-1.1.mga9
2.204.0-1.1.mga9
perl
Root:Debian:11
before 5.32.1-4+deb11u5.aikido.6
5.32.1-4+deb11u5.aikido.65.32.1-4+deb11u5.aikido.75.32.1-4+deb11u5.aikido.85.32.1-4+deb11u5.aikido.95.32.1-4+deb11u5.aikido.105.32.1-4+deb11u5.aikido.115.32.1-4+deb11u5.aikido.125.32.1-4+deb11u5.root.io.55.32.1-4+deb11u5.root.io.4
rootio-perl
Root:Debian:11
before 5.32.1-4+deb11u5.aikido.6
5.32.1-4+deb11u5.aikido.65.32.1-4+deb11u5.aikido.75.32.1-4+deb11u5.aikido.85.32.1-4+deb11u5.aikido.95.32.1-4+deb11u5.aikido.105.32.1-4+deb11u5.aikido.115.32.1-4+deb11u5.aikido.125.32.1-4+deb11u5.root.io.55.32.1-4+deb11u5.root.io.4
perl
Ubuntu:Pro:14.04:LTS
All versions, plus listed versions
5.14.2-21build15.18.1-45.18.1-4build15.18.1-55.18.2-2
Show 12 moreShow less
5.18.2-2ubuntu15.18.2-2ubuntu1.15.18.2-2ubuntu1.35.18.2-2ubuntu1.45.18.2-2ubuntu1.65.18.2-2ubuntu1.75.18.2-2ubuntu1.7+esm35.18.2-2ubuntu1.7+esm45.18.2-2ubuntu1.7+esm55.18.2-2ubuntu1.7+esm75.18.2-2ubuntu1.7+esm85.18.2-2ubuntu1.7+esm9
None known
perl
Ubuntu:Pro:16.04:LTS
All versions, plus listed versions
5.20.2-65.22.1-35.22.1-45.22.1-55.22.1-7
Show 11 moreShow less
5.22.1-85.22.1-95.22.1-9ubuntu0.25.22.1-9ubuntu0.35.22.1-9ubuntu0.55.22.1-9ubuntu0.65.22.1-9ubuntu0.95.22.1-9ubuntu0.9+esm15.22.1-9ubuntu0.9+esm25.22.1-9ubuntu0.9+esm35.22.1-9ubuntu0.9+esm4
None known
libio-compress-perl
Ubuntu:16.04:LTS
All versions, plus listed versions
2.068-22.069-1
None known
perl
Ubuntu:Pro:18.04:LTS
All versions, plus listed versions
5.26.0-8ubuntu15.26.1-2ubuntu15.26.1-35.26.1-45.26.1-4build1
Show 11 moreShow less
5.26.1-55.26.1-65.26.1-6ubuntu0.15.26.1-6ubuntu0.25.26.1-6ubuntu0.35.26.1-6ubuntu0.55.26.1-6ubuntu0.65.26.1-6ubuntu0.75.26.1-6ubuntu0.7+esm25.26.1-6ubuntu0.7+esm35.26.1-6ubuntu0.7+esm4
None known
libio-compress-perl
Ubuntu:18.04:LTS
All versions, plus listed versions
2.074-1
None known
perl
Ubuntu:Pro:20.04:LTS
All versions, plus listed versions
5.28.1-6build15.30.0-75.30.0-95.30.0-9build15.30.0-9ubuntu0.2
Show 6 moreShow less
5.30.0-9ubuntu0.35.30.0-9ubuntu0.45.30.0-9ubuntu0.55.30.0-9ubuntu0.5+esm25.30.0-9ubuntu0.5+esm35.30.0-9ubuntu0.5+esm4
None known
libio-compress-perl
Ubuntu:20.04:LTS
All versions, plus listed versions
2.087-12.089-12.090-12.093-1
None known
libio-compress-perl
Ubuntu:22.04:LTS
All versions, plus listed versions
2.101-12.102-1
None known
perl
Ubuntu:22.04:LTS
All versions, plus listed versions
5.32.1-3ubuntu35.34.0-3ubuntu15.34.0-3ubuntu1.15.34.0-3ubuntu1.25.34.0-3ubuntu1.3
Show 5 moreShow less
5.34.0-3ubuntu1.45.34.0-3ubuntu1.55.34.0-3ubuntu1.75.34.0-3ubuntu1.85.34.0-3ubuntu1.9
None known
libio-compress-perl
Ubuntu:24.04:LTS
All versions, plus listed versions
2.206-12.207-1
None known
perl
Ubuntu:24.04:LTS
before 5.38.2-3.2ubuntu0.4, plus listed versions
5.36.0-9ubuntu15.36.0-10ubuntu15.38.2-35.38.2-3.25.38.2-3.2build1
Show 5 moreShow less
5.38.2-3.2build25.38.2-3.2build2.15.38.2-3.2ubuntu0.15.38.2-3.2ubuntu0.25.38.2-3.2ubuntu0.3
5.38.2-3.2ubuntu0.4
libio-compress-perl
Ubuntu:25.10
All versions, plus listed versions
2.213-1
None known
perl
Ubuntu:25.10
All versions, plus listed versions
5.40.1-25.40.1-35.40.1-55.40.1-65.40.1-6build15.40.1-6ubuntu0.1
None known
libio-compress-perl
Ubuntu:26.10
All versions, plus listed versions
2.217-12.220-12.221-12.223-1
None known
perl
Ubuntu:26.10
All versions, plus listed versions
5.40.1-7build15.40.1-85.40.1-8ubuntu15.42.3-1
None known
libio-compress-perl
Ubuntu:26.04:LTS
All versions, plus listed versions
2.213-12.214-12.217-1
None known
perl
Ubuntu:26.04:LTS
All versions, plus listed versions
5.40.1-6build15.40.1-7build15.40.1-7ubuntu0.15.40.1-7ubuntu0.25.40.1-7ubuntu0.3
None known
perl
Ubuntu:24.04:LTS
From an advisory covering 9 CVEs
before 5.38.2-3.2ubuntu0.4, plus listed versions
5.36.0-9ubuntu15.36.0-10ubuntu15.38.2-35.38.2-3.25.38.2-3.2build1
Show 5 moreShow less
5.38.2-3.2build25.38.2-3.2build2.15.38.2-3.2ubuntu0.15.38.2-3.2ubuntu0.25.38.2-3.2ubuntu0.3
5.38.2-3.2ubuntu0.4

History

History
RecordedChangedSources
affectedOSV
affected, aliases, facts, referencesOSV
affected
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-48959 is a high vulnerability (CVSS 7.5) in Pmqs Io::uncompress::unzip, published May 27, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.55%, the 46th percentile. Fixed in perl 5.42.3-r0.

References

Show 22 moreShow less
MoveEnter Open