Description
Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. From 2.7.1 to 2.11.0, mergeCellsParser leaves the cached rectangle empty for an empty mergeCell ref and then passes that empty slice to cellInRange without a length check. GetCellValue reaches mergeCellsParser, which passes an empty rectangle derived from the mergeCell ref attribute into cellInRange. When a crafted worksheet contains an empty mergeCell ref and a non-streaming cell API reads the worksheet, cellInRange indexes four positions in an empty slice, allowing an attacker to panic on the first affected cell operation. 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 (panic)
Action: Apply Workaround
AI Analysis

Impact

Excelize, a Go library for handling Excel spreadsheets, has a flaw where an empty mergeCell reference in a worksheet causes the mergeCellsParser to produce an empty rectangle. This empty slice is then supplied to cellInRange, which attempts to read four indices from it. Because the slice has no length, the operation panics. The panic terminates the program that is using Excelize, effectively resulting in a denial‑of‑service condition for any operation that reads or writes such a worksheet. This issue is identified as an out‑of‑bounds read (CWE‑125) and a signed‑to‑unsigned conversion error (CWE‑129).

Affected Systems

The vulnerability affects the Excelize Go library versions 2.7.1 through 2.11.0 inclusive. Users of any release in that range that load a worksheet containing an empty mergeCell reference are at risk.

Risk and Exploitability

The CVSS score of 6.5 rates it as a medium‑severity flaw, and the EPSS score is currently unavailable, indicating no explicit exploitation data. It is not listed in the CISA KEV catalog, so no public exploit is known. The attack vector is likely the supply of a crafted Excel file containing an empty mergeCell reference to any application that uses the non‑streaming cell API of Excelize. The exploit requires no special privileges beyond providing the file, so it can be performed by anyone who can influence the file input to a vulnerable application.

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

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Excelize library to a version newer than 2.11.0 once a fix is released.
  • Validate or sanitize input worksheets to ensure that no mergeCell elements contain an empty ref before passing them to Excelize.
  • If upgrading is not immediately possible, wrap calls to GetCellValue or other non‑streaming cell APIs in a recover block to catch panics and prevent the application from crashing.
  • Prefer the streaming API for large or untrusted spreadsheets to avoid the code path that triggers the panic.

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

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-g27h-8qhm-6pff Excelize: Panic in cellInRange on a worksheet with an empty mergeCell ref
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

Sat, 10 Oct 2026 03: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.7.1 to 2.11.0, mergeCellsParser leaves the cached rectangle empty for an empty mergeCell ref and then passes that empty slice to cellInRange without a length check. GetCellValue reaches mergeCellsParser, which passes an empty rectangle derived from the mergeCell ref attribute into cellInRange. When a crafted worksheet contains an empty mergeCell ref and a non-streaming cell API reads the worksheet, cellInRange indexes four positions in an empty slice, allowing an attacker to panic on the first affected cell operation. No fixed version is available as of this review.
Title Excelize: Panic in cellInRange on a worksheet with an empty mergeCell ref
Weaknesses CWE-125
CWE-129
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-10T02:41:14.449Z

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

Link: CVE-2026-107220

cve-icon Vulnrichment

Updated: 2026-10-10T02:39:29.881Z

cve-icon NVD

Status : Analyzed

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

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

Link: CVE-2026-107220

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

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

Weaknesses
  • CWE-125

    Out-of-bounds Read

  • CWE-129

    Improper Validation of Array Index