CVE-2026-59932

PhpSpreadsheet: Gnumeric reader unbounded gzip expansion causes memory exhaustion

State
Published
Severity
7.5 High
Published
Jul 28, 2026
Updated
Jul 29, 2026
Reserved
Jul 7, 2026

Read the record on cve.org

Description

PhpSpreadsheet is a pure PHP library for reading and writing spreadsheet files. In versions 4.0.0 through 5.8.0, 3.3.0 through 3.10.6, 2.2.0 through 2.4.6, 2.0.0 through 2.1.17, and all releases up to and including 1.30.5, the Gnumeric reader reads attacker-supplied .gnumeric files into memory and, when the file starts with gzip magic bytes, calls gzdecode() on the full compressed contents without enforcing a decompressed-size limit. A very small compressed .gnumeric file can expand to data larger than the PHP memory limit and crash the process during Gnumeric::canRead() before the file is rejected or fully parsed. This is reachable through normal file-type detection and Gnumeric loading paths, so applications that accept attacker-controlled spreadsheet uploads can suffer denial of service. This issue has been fixed in versions 5.8.1, 3.10.7, 2.4.7, 2.1.18 and 1.30.6.

Scores

CVSSScoreVectorSource
3.17.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HGitHub_M

Weaknesses

  • CWE-400 Uncontrolled Resource Consumption
  • CWE-409 Improper Handling of Highly Compressed Data (Data Amplification)

Affected Products

ProductVersions
PhpSpreadsheetPHPOffice
  • >= 4.0.0, < 5.8.1Affected
  • >= 3.3.0, < 3.10.7Affected
  • >= 2.2.0, < 2.4.7Affected
  • >= 2.0.0, < 2.1.18Affected
  • < 1.30.6Affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.