PhpSpreadsheet ODS Reader: Unbounded number-rows-repeated → CPU & Memory Exhaustion (DoS)
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 1.30.7, 2.1.19, 2.4.8, 3.10.8, 5.10.0
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: poc
- Automatable: yes
- Technical impact: partial
Summary
PhpSpreadsheet, a PHP library for reading and writing spreadsheet files, is affected when its ODS reader processes a crafted OpenDocument Spreadsheet file. A small malicious file can make the library create an excessive number of cells, consuming large amounts of CPU and memory and potentially crashing the PHP process that handles it.
Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.
Read the original description
PhpSpreadsheet is a pure PHP library for reading and writing spreadsheet files. Prior to 1.30.7, 2.1.19, 2.4.8, 3.10.8, and 5.10.0, Ods::processTableRow in src/PhpSpreadsheet/Reader/Ods.php accepts an unbounded table:number-rows-repeated attribute from an ODS table row. When the row contains a value, the reader materializes a cell for every repetition without checking the spreadsheet row limit, so a small attacker-controlled ODS file can consume substantial CPU and memory and terminate the PHP worker. Column repetition is separately bounded and is not part of this vulnerability. This issue is fixed in versions 1.30.7, 2.1.19, 2.4.8, 3.10.8, and 5.10.0.
Timeline
- CVE published
- First seen by cve.now
- CISA SSVC assessment
Exploitation: poc · Automatable: yes · Technical impact: partial
- Record last updated
Affected versions
- PHPOffice PhpSpreadsheet
fixed in 1.30.7; From 2.0.0 · fixed in 2.1.19; From 2.2.0 · fixed in 2.4.8; From 3.3.0 · fixed in 3.10.8; From 4.0.0 · fixed in 5.10.0
- phpoffice/phpspreadsheetPackagist
From 4.0.0 · fixed in 5.10.0
- phpoffice/phpspreadsheetPackagist
From 3.3.0 · fixed in 3.10.8
- phpoffice/phpspreadsheetPackagist
From 2.2.0 · fixed in 2.4.8
- phpoffice/phpspreadsheetPackagist
From 2.0.0 · fixed in 2.1.19
- phpoffice/phpspreadsheetPackagist
fixed in 1.30.7