Impact
The PHP library PhpSpreadsheet contains a flaw in its Gnumeric file reader where gzdecode() is called on the entire compressed payload without enforcing a maximum decompressed size. A minimally sized compressed .gnumeric file can therefore expand to exceed the PHP memory limit, causing the process to crash during parsing. The vulnerability is exploitable when an attacker supplies a crafted .gnumeric file to an application that accepts arbitrary spreadsheet uploads, resulting in a service interruption. The weakness is classified under CWE-400 and CWE-409 – improper resource management and improper size restriction.
Affected Systems
The flaw exists in PHPOffice:PhpSpreadsheet 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. Updated releases 5.8.1, 3.10.7, 2.4.7, 2.1.18 and 1.30.6 contain the fix.
Risk and Exploitability
The CVSS score is 7.5, indicating high severity, while the EPSS score is less than 1 %, showing a very low probability of exploitation. The vulnerability is not listed in CISA's KEV catalog, suggesting no known widespread exploitation at this time. The most likely attack vector involves a user uploading a specially crafted .gnumeric file, which triggers the unbounded expansion during Gnumeric::canRead(), leading to a service crash before the file is rejected or parsed.
OpenCVE Enrichment
Github GHSA