Description
Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. From 2.0.0 to 2.11.0 in github.com/xuri/excelize/v2 and from 1.1.0 to 1.4.1 in github.com/xuri/excelize, ColumnNameToNumber accumulates a bijective base-26 value in int64 without detecting overflow, allowing an invalid long column name to wrap to zero with no error. ColumnNameToNumber accepts the overflowing name VGWQHXLSDVIKWV, after which checkSheetR0 and xlsxWorksheet.checkRow use the wrapped column value as an index. When a crafted worksheet uses an overflowing column name in a row normalized by checkSheetR0 or checkRow, the wrapped zero column becomes a negative slice index during worksheet normalization, allowing an attacker to panic and terminate the calling process. No fixed version is available as of this review.
Published: 2026-10-07
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service via panic resulting in process termination
Action: Immediate Patch
AI Analysis

Impact

ColumnNameToNumber in Excelize increments a base‑26 value stored in an int64 without checking for overflow. When given an excessively long column name such as VGWQHXLSDVIKWV, the value wraps to zero and the library returns a nil error. Subsequent code in checkSheetR0 and xlsxWorksheet.checkRow interprets this wrapped value as a column index. In a normal worksheet, this produces a negative slice index during normalization, causing a runtime panic that terminates the owning process. The vulnerability is a typical integer overflow leading to a panic; it does not allow arbitrary code execution or information disclosure.

Affected Systems

The affected vendor is qax-os, providing the excelize Go library. Versions from 2.0.0 through 2.11.0 of github.com/xuri/excelize/v2 and from 1.1.0 through 1.4.1 of github.com/xuri/excelize are impacted. No patched release is currently available, so all installations within those ranges are vulnerable.

Risk and Exploitability

The CVSS score of 7.5 indicates a high severity impact, while the EPSS score is not available, suggesting that the exploit probability is unknown but the vulnerability remains noteworthy. The vulnerability is not listed in CISA’s KEV catalog, meaning publicly known exploits have not yet been confirmed. The likely attack vector is an attacker supplying a crafted Excel file with an overly long column name to a system that uses excelize to process user input. Upon loading the file, the library will panic, causing a denial of service. No additional prerequisites are required beyond the vulnerable library being in use and processing the attacker‑controlled file.

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

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to a patched release of excelize (or switch to a maintained fork) when a fix is released.
  • Wrap all calls to excelize in a recoverable boundary in Go code, using defer + recover to catch panics and prevent process termination.
  • Validate or sanitize input Excel files before handing them to excelize, ensuring column names do not exceed a safe length or rejecting files that contain excessively long column identifiers.

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

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-c85p-xxjj-2r75 Excelize ColumnNameToNumber: int64 overflow yields an out-of-domain coordinate with nil error, causing negative slice index panic on r="0" rows
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

Thu, 08 Oct 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', '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 in github.com/xuri/excelize/v2 and from 1.1.0 to 1.4.1 in github.com/xuri/excelize, ColumnNameToNumber accumulates a bijective base-26 value in int64 without detecting overflow, allowing an invalid long column name to wrap to zero with no error. ColumnNameToNumber accepts the overflowing name VGWQHXLSDVIKWV, after which checkSheetR0 and xlsxWorksheet.checkRow use the wrapped column value as an index. When a crafted worksheet uses an overflowing column name in a row normalized by checkSheetR0 or checkRow, the wrapped zero column becomes a negative slice index during worksheet normalization, allowing an attacker to panic and terminate the calling process. No fixed version is available as of this review.
Title Excelize ColumnNameToNumber: int64 overflow yields an out-of-domain coordinate with nil error, causing negative slice index panic on r="0" rows
Weaknesses CWE-129
CWE-190
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/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-08T16:10:25.237Z

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

Link: CVE-2026-107217

cve-icon Vulnrichment

Updated: 2026-10-08T16:10:18.292Z

cve-icon NVD

Status : Analyzed

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

Modified: 2026-10-13T14:23:36.643

Link: CVE-2026-107217

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

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

Weaknesses
  • CWE-129

    Improper Validation of Array Index

  • CWE-190

    Integer Overflow or Wraparound