CVE-2026-48959
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.
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
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 High
CVSS: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 High
CVSS: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 High
CVSS: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 High
CVSS: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 High
CVSS: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 High
CVSS: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 High
CVSS: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 High
CVSS: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 High
CVSS: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
| Package | Affected | Fixed |
|---|---|---|
perlAlpine:v3.24 |
before 5.42.3-r0 | 5.42.3-r0 |
perlAzure Linux:3 |
before 5.38.2-512 | 5.38.2-512 |
perlAlpaquita:23 |
5.36.0-r0 up to 5.36.3-r2 | 5.36.3-r2 |
perlAlpaquita:25 |
5.40.2-r0 up to 5.40.4-r1 | 5.40.4-r1 |
perlAlpaquita:stream |
5.36.0-r0 up to 5.42.2-r1 | 5.42.2-r1 |
perlBellSoft Hardened Containers:23 |
5.36.0-r0 up to 5.36.3-r2 | 5.36.3-r2 |
perlBellSoft Hardened Containers:25 |
5.40.2-r0 up to 5.40.4-r1 | 5.40.4-r1 |
perlBellSoft Hardened Containers:stream |
5.36.0-r0 up to 5.42.2-r1 | 5.42.2-r1 |
libio-compress-perlDebian:12 |
before 2.204-1+deb12u1, plus listed versions 2.204-1 |
2.204-1+deb12u1 |
libio-compress-perlDebian:13 |
before 2.213-1+deb13u1, plus listed versions 2.213-1 |
2.213-1+deb13u1 |
Show 25 moreShow less
| Package | Affected | Fixed |
|---|---|---|
libio-compress-perlDebian:14 |
before 2.220-1, plus listed versions 2.213-12.214-12.217-12.219-12.219-2 |
2.220-1 |
perlDebian: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 |
perlDebian:13 |
before 5.40.1-6+deb13u1, plus listed versions 5.40.1-6 |
5.40.1-6+deb13u1 |
perlDebian:14 |
before 5.40.1-8, plus listed versions 5.40.1-65.40.1-7 |
5.40.1-8 |
perl-IO-CompressMageia:9 From an advisory covering 4 CVEs |
before 2.204.0-1.1.mga9 | 2.204.0-1.1.mga9 |
perlRoot: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-perlRoot: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 |
perlUbuntu: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 less5.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 |
perlUbuntu: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 less5.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-perlUbuntu:16.04:LTS |
All versions, plus listed versions 2.068-22.069-1 |
None known |
perlUbuntu: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 less5.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-perlUbuntu:18.04:LTS |
All versions, plus listed versions 2.074-1 |
None known |
perlUbuntu: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 less5.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-perlUbuntu:20.04:LTS |
All versions, plus listed versions 2.087-12.089-12.090-12.093-1 |
None known |
libio-compress-perlUbuntu:22.04:LTS |
All versions, plus listed versions 2.101-12.102-1 |
None known |
perlUbuntu: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 less5.34.0-3ubuntu1.45.34.0-3ubuntu1.55.34.0-3ubuntu1.75.34.0-3ubuntu1.85.34.0-3ubuntu1.9 |
None known |
libio-compress-perlUbuntu:24.04:LTS |
All versions, plus listed versions 2.206-12.207-1 |
None known |
perlUbuntu: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 less5.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-perlUbuntu:25.10 |
All versions, plus listed versions 2.213-1 |
None known |
perlUbuntu: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-perlUbuntu:26.10 |
All versions, plus listed versions 2.217-12.220-12.221-12.223-1 |
None known |
perlUbuntu:26.10 |
All versions, plus listed versions 5.40.1-7build15.40.1-85.40.1-8ubuntu15.42.3-1 |
None known |
libio-compress-perlUbuntu:26.04:LTS |
All versions, plus listed versions 2.213-12.214-12.217-1 |
None known |
perlUbuntu: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 |
perlUbuntu: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 less5.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
| Recorded | Changed | Sources |
|---|---|---|
| affected | OSV | |
| affected, aliases, facts, references | OSV | |
| affected | ||
| first indexed | CVE 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
github.com/pmqs/IO-Compress/commit/68db44076f4c1a86a2ffe53a958eac6cabaf72e2.patch
metacpan.org/release/PMQS/IO-Compress-2.220/changes
openwall.com/lists/oss-security/2026/05/27/2
nvd.nist.gov/vuln/detail/CVE-2026-48959
github.com/advisories/GHSA-7vxx-5gqr-7r44
security.alpinelinux.org/vuln/CVE-2026-48959
Show 22 moreShow less
docs.bell-sw.com/security/cves/CVE-2026-48959
cpan.org/modules
github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48959.json
github.com/pmqs/IO-Compress
security-tracker.debian.org/tracker/CVE-2026-48959
advisories.mageia.org/MGASA-2026-0158.html
bugs.mageia.org/show_bug.cgi?id=35593
openwall.com/lists/oss-security/2026/05/27/1
openwall.com/lists/oss-security/2026/05/27/3
openwall.com/lists/oss-security/2026/05/27/4
ubuntu.com/security/CVE-2026-48959
cve.org/CVERecord?id=CVE-2026-48959
lists.security.metacpan.org/cve-announce/msg/40434381
ubuntu.com/security/notices/USN-8684-1
ubuntu.com/security/CVE-2025-15649
ubuntu.com/security/CVE-2026-7017
ubuntu.com/security/CVE-2026-9538
ubuntu.com/security/CVE-2026-12087
ubuntu.com/security/CVE-2026-13221
ubuntu.com/security/CVE-2026-48962
ubuntu.com/security/CVE-2026-57432
ubuntu.com/security/CVE-2026-57433