Description
Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. Prior to 2.11.0, Excelize parses shared-string cell values with strconv.Atoi and checks only the upper bound before indexing the shared string slice, allowing an XLSX file containing a shared-string cell with -1 to trigger sharedStrings[-1] and panic when read through GetCellValue or GetRows. This issue is fixed in version 2.11.0.
Published: 2026-07-10
Score: 6.9 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Excelize is a Go library that processes XLSX files. Before version 2.11.0 it converts the shared‑string identifier to an integer and checks only that it is less than the length of the shared‑string slice, ignoring negative values. If an attacker supplies a malformed XLSX file containing a shared‑string cell with the index –1, the library will attempt to access sharedStrings[-1] and panic, causing the host application to crash. The failure manifests as a denial‑of‑service condition for any service that uses GetCellValue or GetRows to read untrusted workbooks.

Affected Systems

Any Go application that embeds qax‑os Excelize before version 2.11.0 and reads or processes XLSX files is vulnerable. This includes command‑line utilities, web services, or backend processing pipelines that use GetCellValue or GetRows on workbook data from untrusted sources.

Risk and Exploitability

With a CVSS of 6.9 the vulnerability is considered medium severity. The EPSS score is less than 1 %, indicating a very low likelihood of exploitation, and it is not listed in CISA’s KEV catalog. The attack vector requires delivery of a crafted file. Once the file is passed to GetCellValue or GetRows, the panicking library immediately terminates the application, resulting in an outage.

Generated by OpenCVE AI on July 29, 2026 at 10:40 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to Excelize v2.11.0 or later, where the shared‑string index check is corrected.
  • Add input validation to ensure any shared‑string indices are non‑negative before accessing the slice, or use a wrapper that sanitizes indices.
  • Implement panic recovery or graceful error handling around calls to GetCellValue or GetRows so that a malformed workbook does not crash the entire application.

Generated by OpenCVE AI on July 29, 2026 at 10:40 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 13 Jul 2026 15:15:00 +0000

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

Fri, 10 Jul 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Fri, 10 Jul 2026 16:30:00 +0000

Type Values Removed Values Added
Description Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. Prior to 2.11.0, Excelize parses shared-string cell values with strconv.Atoi and checks only the upper bound before indexing the shared string slice, allowing an XLSX file containing a shared-string cell with -1 to trigger sharedStrings[-1] and panic when read through GetCellValue or GetRows. This issue is fixed in version 2.11.0.
Title Excelize: Negative shared-string index causes panic in GetCellValue and GetRows
Weaknesses CWE-248
CWE-755
References
Metrics cvssV4_0

{'score': 6.9, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-10T18:40:25.481Z

Reserved: 2026-07-02T16:50:27.887Z

Link: CVE-2026-59162

cve-icon Vulnrichment

Updated: 2026-07-10T18:40:15.197Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-29T10:45:03Z

Weaknesses
  • CWE-248

    Uncaught Exception

  • CWE-755

    Improper Handling of Exceptional Conditions