CVE-2026-40863: CWE-770: Allocation of Resources Without Limits or Throttling in PHPOffice PhpSpreadsheet
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.
AI Analysis
Technical Summary
PhpSpreadsheet's SpreadsheetML XML reader (Reader\Xml) fails to validate the ss:Index attribute on <Row> elements against the maximum row count (1,048,576). An attacker can supply a crafted SpreadsheetML XML file with an excessively large ss:Index value (e.g., 999999999), causing the internal cachedHighestRow to inflate to about 1 billion. Subsequent calls to getRowIterator() without an explicit end row will attempt to iterate this inflated number of rows, resulting in CPU exhaustion and denial of service. This vulnerability is identified as CWE-770 (Allocation of Resources Without Limits or Throttling) and has a CVSS 3.1 base score of 7.5 (high severity). It affects multiple PhpSpreadsheet versions before the patched releases 1.30.4, 2.1.16, 2.4.5, 3.10.5, and 5.7.0.
Potential Impact
Successful exploitation causes denial of service due to CPU exhaustion when processing maliciously crafted SpreadsheetML XML files. There is no impact on confidentiality or integrity reported. The service or application using vulnerable PhpSpreadsheet versions may become unresponsive or crash during processing of such files.
Mitigation Recommendations
A fix is available in PhpSpreadsheet versions 1.30.4, 2.1.16, 2.4.5, 3.10.5, and 5.7.0. Users should upgrade to one of these patched versions to remediate the vulnerability. No vendor advisory content is provided to indicate alternative mitigations or temporary workarounds. Patch status is confirmed by the version information in the description.
CVE-2026-40863: CWE-770: Allocation of Resources Without Limits or Throttling in PHPOffice PhpSpreadsheet
Description
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.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
PhpSpreadsheet's SpreadsheetML XML reader (Reader\Xml) fails to validate the ss:Index attribute on <Row> elements against the maximum row count (1,048,576). An attacker can supply a crafted SpreadsheetML XML file with an excessively large ss:Index value (e.g., 999999999), causing the internal cachedHighestRow to inflate to about 1 billion. Subsequent calls to getRowIterator() without an explicit end row will attempt to iterate this inflated number of rows, resulting in CPU exhaustion and denial of service. This vulnerability is identified as CWE-770 (Allocation of Resources Without Limits or Throttling) and has a CVSS 3.1 base score of 7.5 (high severity). It affects multiple PhpSpreadsheet versions before the patched releases 1.30.4, 2.1.16, 2.4.5, 3.10.5, and 5.7.0.
Potential Impact
Successful exploitation causes denial of service due to CPU exhaustion when processing maliciously crafted SpreadsheetML XML files. There is no impact on confidentiality or integrity reported. The service or application using vulnerable PhpSpreadsheet versions may become unresponsive or crash during processing of such files.
Mitigation Recommendations
A fix is available in PhpSpreadsheet versions 1.30.4, 2.1.16, 2.4.5, 3.10.5, and 5.7.0. Users should upgrade to one of these patched versions to remediate the vulnerability. No vendor advisory content is provided to indicate alternative mitigations or temporary workarounds. Patch status is confirmed by the version information in the description.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-04-15T15:57:41.717Z
- Cvss Version
- 3.1
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a03a7e4cbff5d86101ff967
Added to database: 5/12/2026, 10:21:24 PM
Last enriched: 5/12/2026, 10:36:55 PM
Last updated: 5/13/2026, 4:52:48 AM
Views: 12
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
External Links
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.