CVE-2026-40863
Published:May 12, 2026
Updated:May 16, 2026
PhpSpreadsheet is a pure PHP library for reading and writing spreadsheet files. Prior to 1.30.4, 2.1.16, 2.4.5, 3.10.5, and 5.7.0, the SpreadsheetML XML reader (Reader\Xml) does not validate the ss:Index row attribute against the maximum allowed row count (AddressRange::MAX_ROW = 1,048,576). An attacker can craft a SpreadsheetML XML file with ss:Index="999999999" on a <Row> element, which inflates the internal cachedHighestRow to ~1 billion. Any subsequent call to getRowIterator() without an explicit end row will attempt to iterate ~1 billion rows, causing CPU exhaustion and denial of service. This vulnerability is fixed in 1.30.4, 2.1.16, 2.4.5, 3.10.5, and 5.7.0.
Affected Packages
phpoffice/phpspreadsheet (PHP):
Affected version(s) >=dev-release <1.30.4Fix Suggestion:
Update to version 1.30.4phpoffice/phpspreadsheet (PHP):
Affected version(s) >=1.0.0-beta <1.30.4Fix Suggestion:
Update to version 1.30.4phpoffice/phpspreadsheet (PHP):
Affected version(s) >=2.0.0 <2.1.16Fix Suggestion:
Update to version 2.1.16phpoffice/phpspreadsheet (PHP):
Affected version(s) >=3.3.0 <3.10.5Fix Suggestion:
Update to version 3.10.5phpoffice/phpspreadsheet (PHP):
Affected version(s) >=2.2.0 <2.4.5Fix Suggestion:
Update to version 2.4.5phpoffice/phpspreadsheet (PHP):
Affected version(s) >=4.0.0 <5.7.0Fix Suggestion:
Update to version 5.7.0Related Resources (3)
Do you need more information?
Contact UsCVSS v4
Base Score:
8.7
Attack Vector
NETWORK
Attack Complexity
LOW
Attack Requirements
NONE
Privileges Required
NONE
User Interaction
NONE
Vulnerable System Confidentiality
NONE
Vulnerable System Integrity
NONE
Vulnerable System Availability
HIGH
Subsequent System Confidentiality
NONE
Subsequent System Integrity
NONE
Subsequent System Availability
NONE
CVSS v3
Base Score:
7.5
Attack Vector
NETWORK
Attack Complexity
LOW
Privileges Required
NONE
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Weakness Type (CWE)
EPSS
Base Score:
0.04