Medium severity · published Oct 7, 2026
CVE-2026-107221
Excelize: a row whose earlier cell has a higher column reference than its last cell panics index out of range on almost every worksheet read API
6.5
CVSS
0.3%
EPSS
No
On KEV
Description
Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. From 2.0.0 to 2.11.0, checkRow sizes its target cell slice from the last cell in XML document order and then re-scatters every cell by its explicit column reference. GetCellValue reaches workSheetReader and checkRow, where targetList is too short for an earlier out-of-order cell. When a crafted row places a higher-column cell before a lower-column final cell and a non-streaming worksheet API reads the sheet, the earlier cell's column index exceeds the slice length derived from the final cell, allowing an attacker to cause an unrecovered panic and terminate the process. No fixed version is available as of this review.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
Attack vector
Network
Complexity
Low
Privileges
None
User interaction
Required
Confidentiality
None
Integrity
None
Availability
High
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.3% · higher than 19% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
EX
excelize · qax-os
>= 2.0.0, <= 2.11.0 · source: vendor, NVD
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-107221
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-107221
x_refsource_CONFIRM
https://github.com/qax-os/excelize/security/advisories/GHSA-8mcq-6wmr-jrjv
x_refsource_MISC
https://github.com/qax-os/excelize/pull/2376
x_refsource_MISC
https://github.com/qax-os/excelize/commit/46a5eb289448e40fbc7d3294589b03861fb822f0
More from excelize
7.5
CVE-2026-107223
Excelize: Unbounded <col max> attribute is loaded with no MaxColumns check and expanded per-column by flatCols(), so any column mutator hangs or OOMs the process
7.5
CVE-2026-107219
Excelize: Unbounded spinCount in agile decryption burns CPU during OpenFile
7.5
CVE-2026-107217
Excelize ColumnNameToNumber: int64 overflow yields an out-of-domain coordinate with nil error, causing negative slice index panic on r="0" rows
7.5
CVE-2026-107216
Excelize ANCHORARRAY: mutually-referencing array formulas recurse unboundedly via re-entrant CalcCellValue, causing a fatal stack overflow
7.5
CVE-2026-107215
Excelize: extractPart allocates attacker-controlled, unbounded and negative-sized buffers from CFB directory entries: remote panic / OOM DoS
