Vulnerability · Published Oct 7, 2026 · Assigned by GitHub_M

CVE-2026-107221Excelize: 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

Medium 6.5

In plain English

A medium-severity out-of-bounds write in excelize from qax-os. Proof-of-concept exploit code is public. The chance it is exploited in the next 30 days is estimated at 0.3% (higher than 19% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)6.5Medium
Exploit odds (30 days)0.3%top 80.7% of all CVEs
Exploited in the wildNo reportsCISA SSVC: poc
Attack toolingNoneno public tooling known

Official 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.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
Gogithub.com/xuri/excelize/v22.11.1-0.20260816084418-46a5eb289448GHSA-8mcq-6wmr-jrjv
Gogithub.com/xuri/excelize/v22.11.1-0.20260816084418-46a5eb289448GO-2026-6676

Affected products (as reported)

VendorProductVersions
qax-os excelize >= 2.0.0, <= 2.11.0

Weakness: CWE-787 · Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

References