PhpSpreadsheet: CPU Denial of Service via Unbounded Row Number in XLSX Row Dimensions
Published May 12, 2026
7.5
HIGHCVSS 3.1
EPSS 0.49%
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 XLSX reader's ColumnAndRowAttributes::readRowAttributes() method reads row numbers from XML attributes without validating them against the spreadsheet maximum row limit (AddressRange::MAX_ROW = 1,048,576). An attacker can craft a minimal XLSX file (~1.6KB) containing a <row r="999999999"/> element that inflates cachedHighestRow to 999,999,999, causing any subsequent row iteration to attempt ~1 billion loop cycles and exhaust CPU resources. This vulnerability is fixed in 1.30.4, 2.1.16, 2.4.5, 3.10.5, and 5.7.0.
Affected products
-
- Version < 1.30.4StatusaffectedConstraints-
- Version >= 2.0.0, < 2.1.16StatusaffectedConstraints-
- Version >= 2.2.0, < 2.4.5StatusaffectedConstraints-
- Version >= 3.3.0, < 3.10.5StatusaffectedConstraints-
- Version >= 4.0.0, < 5.7.0StatusaffectedConstraints-
- Version
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PHPOffice | PhpSpreadsheet | n/a |
|
- < 1.30.4
- ≥ 2.0.0 · < 2.1.16
- ≥ 2.2.0 · < 2.4.5
- ≥ 3.3.0 · < 3.10.5
- ≥ 4.0.0 · < 5.7.0
No data.
No Red Hat product state for this CVE.
No package ranges for this CVE.
Remediation
No remediation recorded yet.
Metrics
No CVSS v4.0 score for this CVE.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
No CVSS v3.0 score for this CVE.
No CVSS v2.0 score for this CVE.
This CVE is not in the KEV list.
CISA SSVC (Vulnrichment)
Stakeholder-Specific Vulnerability Categorization from CISA ADP.
Exploitation
PoCAutomatable
YesTechnical Impact
PartialDecision
n/aAssessed May 13, 2026 · SSVC 2.0.3
Estimated probability of exploitation in the wild in the next 30 days (FIRST EPSS). As of Oct 2, 2026.
Score over time
May–Oct 2026- EPSS v4
- EPSS v5
Percentile over time
- EPSS v4
- EPSS v5
Table of values (3 key points)
Flat stretches are collapsed; showing up to 120 newest points.
| Date | Score | Percentile | Model |
|---|---|---|---|
| Oct 2, 2026 | 0.49% (0.00486) | 39.66th | v5 (v2026.06.15) |
| Jun 15, 2026 | 0.40% (0.00395) | 31.07th | v5 (v2026.06.15) |
| May 13, 2026 | 0.04% (0.00040) | 12.10th | v4 (v2025.03.14) |
References (3)
- https://github.com/PHPOffice/PhpSpreadsheet/security/advisories/GHSA-7c6m-4442-2x6m exploitx_refsource_CONFIRMMitigationVendor Advisory
- https://github.com/advisories/GHSA-7c6m-4442-2x6m Advisory
- https://nvd.nist.gov/vuln/detail/CVE-2026-40902
| Link | Providers | Tags |
|---|---|---|
| https://github.com/PHPOffice/PhpSpreadsheet/security/advisories/GHSA-7c6m-4442-2x6m | exploitx_refsource_CONFIRMMitigationVendor Advisory | |
| https://github.com/advisories/GHSA-7c6m-4442-2x6m | Advisory | |
| https://nvd.nist.gov/vuln/detail/CVE-2026-40902 |
Change history (0)
No recorded changes yet.