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.
Published: 2026-10-07
Score: 6.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service (Crash)
Action: Monitor
AI Analysis

Impact

Excelize, a popular Go library for handling Microsoft Excel files, contains a flaw that causes an unrecovered panic when reading a worksheet that contains a row where an earlier cell references a higher column than the row’s final cell. The bug occurs because the library computes the size of the target cell slice based on the last cell’s column and then re‑scatters each cell according to its explicit column reference. When a malicious or malformed file places a cell with a larger column reference before the row’s final cell, the computed slice is too short, and accessing that earlier cell triggers an index‑out‑of‑range panic. This panic terminates the Go process executing the read, producing a denial‑of‑service condition but not enabling code execution or data disclosure.

Affected Systems

Versions 2.0.0 through 2.11.0 of the qax‑os:excelize library are affected. The vulnerability manifests in any non‑streaming worksheet read API that calls checkRow, including GetCellValue and related functions. Applications built with Go that import this library— as custom reporting services, data import tools, or web backends that process user‑supplied Excel files—would be impacted if those applications load a crafted spreadsheet.

Risk and Exploitability

The CVSS score of 6.5 indicates medium severity. No EPSS score is currently published, and the vulnerability is not listed in CISA’s KEV catalog. Because the exploit requires the attacker to supply a specially crafted Excel file and the application to invoke a non‑streaming read routine, the attack vector is local to the application that processes spreadsheet data. An attacker who can upload or otherwise influence the contents of a spreadsheet can reliably trigger a crash, leading to service interruption. Until a fixed library release is available, no direct code‑execution vectors are known; the primary risk remains denial of service.

Generated by OpenCVE AI on October 7, 2026 at 19:50 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the patched commit directly, or monitor the qax‑os GitHub repository for an official release that incorporates the fix. Until a stable release is available, apply the commit 46a5eb289448e40fbc7d3294589b03861fb822f0 to your local copy of the library.
  • Implement defensive file validation: process spreadsheets in a separate process or container, catch panics with recover, and reject files that fail validation or cause a panic, preventing the main application from crashing.
  • Modify application logic to limit the depth of worksheets processed or enforce a maximum column count, reducing the likelihood of out‑of‑bounds accesses.
  • Apply language‑specific best practices for handling external libraries: wrap any Excelize calls in protected error‑handling constructs and consider using an alternative library that performs bounds checking.

Generated by OpenCVE AI on October 7, 2026 at 19:50 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-8mcq-6wmr-jrjv 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
History

Tue, 13 Oct 2026 14:30:00 +0000

Type Values Removed Values Added
First Time appeared Excelize
Excelize excelize
CPEs cpe:2.3:a:excelize:excelize:*:*:*:*:*:go:*:*
Vendors & Products Excelize
Excelize excelize

Wed, 07 Oct 2026 20:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 07 Oct 2026 20:15:00 +0000

Type Values Removed Values Added
First Time appeared Qax-os
Qax-os excelize
Vendors & Products Qax-os
Qax-os excelize

Wed, 07 Oct 2026 18:45:00 +0000

Type Values Removed Values Added
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.
Title 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
Weaknesses CWE-787
References
Metrics cvssV3_1

{'score': 6.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H'}


Subscriptions

Excelize Excelize
Qax-os Excelize
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-07T19:17:06.445Z

Reserved: 2026-10-07T14:34:14.816Z

Link: CVE-2026-107221

cve-icon Vulnrichment

Updated: 2026-10-07T19:16:44.485Z

cve-icon NVD

Status : Analyzed

Published: 2026-10-07T19:17:34.620

Modified: 2026-10-13T14:22:51.213

Link: CVE-2026-107221

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-07T20:00:12Z

Weaknesses