Excelize: Unbounded Row Index Allocation in Worksheet Parser (checkSheet OOM/Panic DoS)
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- None · None · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-770.
Summary
Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. Prior to 2.11.0, the checkSheet() function in github.com/xuri/excelize/v2 uses an attacker-controlled <row r="N"> XML attribute value directly as the length argument to make([]xlsxRow, row) without validating it against the Excel row limit (TotalRows = 1,048,576). A specially crafted XLSX file can trigger two denial-of-service variants: (A) an out-of-memory process kill when r=2147483647 forces a ~16 GB allocation attempt, and (B) a runtime panic via out-of-bounds slice indexing when r=-1. Any service that opens attacker-supplied XLSX files and calls GetCellValue is affected. No authentication is required. This issue is fixed in version 2.11.0.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| qax-os | excelize | before 2.11.0 | 2.11.0 | Patch available | CNA |
| — | github.com/xuri/excelize/v2 (Go) | before 2.11.0 | 2.11.0 | Patch available | GHSA-h69g-9hx6-f3v4 |
- excelize Vendorqax-os Affected before 2.11.0 Fixed in 2.11.0 Patch available CNA
- github.com/xuri/excelize/v2 (Go) Vendor— Affected before 2.11.0 Fixed in 2.11.0 Patch available GHSA-h69g-9hx6-f3v4
Remediation
- Fix · CNA excelize (qax-os) Fixed in 2.11.0
- Fix · GHSA-h69g-9hx6-f3v4 github.com/xuri/excelize/v2 (Go) Fixed in 2.11.0 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-54063
- 2026-10-03 Alias added: GHSA-h69g-9hx6-f3v4
References
More qax-os Excelize vulnerabilities
- TI-2026-42325 Excelize: Streaming GetRows row-bound bypass causes attacker-controlled allocation CVSS 4.0HIGH 8.7
- TI-2026-69266 Integer overflow in Excelize column parsing causes process panic CVSS 3.1HIGH 7.5
- TI-2026-69263 Excelize crafted OLE files cause memory exhaustion and panic CVSS 3.1HIGH 7.5
- TI-2026-69262 Unrecoverable panics in Excelize Decrypt on malformed OLE workbooks CVSS 3.1HIGH 7.5
- TI-2026-69260 Unbounded row number in Excelize lets crafted spreadsheets hang reads CVSS 3.1HIGH 7.5
- TI-2026-42326 Excelize: Negative shared-string index causes panic in GetCellValue and GetRows CVSS 4.0MEDIUM 6.9
Sources
- CVE-2026-54063 · CVE Program
- CVE-2026-54063 · NVD
- FIRST EPSS
- GHSA-h69g-9hx6-f3v4 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences