Description
Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. From 2.7.0 to 2.11.0, conditional-format extraction indexes required child slices or dereferences an optional colorScale child without validating malformed rule structure. GetConditionalFormats reaches extractCondFmtCellIs and also indexes ColorScale.Cfvo, DataBar.Cfvo, and DataBar.Color without complete structural checks. When a crafted worksheet supplies a cellIs, dataBar, or colorScale rule missing expected children and the application calls GetConditionalFormats, missing formula, color, value-object, or colorScale data reaches an out-of-range index or nil dereference, allowing an attacker to panic and terminate an unprotected process. No fixed version is available as of this review.
Published: 2026-10-07
Score: 6.5 Medium
EPSS: n/a
KEV: No
Impact: Denial of Service via application crash
Action: Assess Impact
AI Analysis

Impact

Excelize is a Go library for manipulating Excel files. Between releases 2.7.0 and 2.11.0, the GetConditionalFormats function can index child elements of a conditional‑formatting rule without ensuring the expected slices or pointers exist. A craft spreadsheet that omits required children leads to an out‑of‑range index or nil dereference when the function accesses ColorScale.Cfvo, DataBar.Cfvo, or DataBar.Color. The missing data causes a panic that unconditionally terminates the process. The vulnerability therefore provides a denial‑of‑service vector by allowing an attacker to crash an unprotected application that calls the function.

Affected Systems

Vulnerable versions are Excelize 2.7.0 through 2.11.0. The library is maintained by qax‑os and used in any Go application that processes Excel files by calling GetConditionalFormats. No fixed release exists at the time of this review.

Risk and Exploitability

The CVSS score of 6.5 indicates moderate severity. The EPSS score is not available, and the vulnerability is not listed in the CISA KEV catalog. Attackers need only supply a malicious workbook that triggers the error; the attack vector is a crafted input file. Exploitation does not require elevated privileges or code execution, but it can terminate the target service. Overall risk is moderate but mitigable by disabling the function or applying safeguards.

Generated by OpenCVE AI on October 7, 2026 at 20:27 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to a fixed version of Excelize once it is released by qax-os.
  • If an upgrade is not possible, insert validation logic before calling GetConditionalFormats: check that rule slices and pointer fields are present and non‑nil to avoid out‑of‑range accesses.
  • Run the Excel parsing and conditional‑format extraction in a separate, restricted process or container that can be restarted automatically if a panic occurs, limiting the impact of a crash.

Generated by OpenCVE AI on October 7, 2026 at 20:27 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-rxcj-4pj5-74gr Excelize: GetConditionalFormats indexes conditional-formatting rule sub-elements with no length or nil check
History

Wed, 07 Oct 2026 21:00: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 19:00:00 +0000

Type Values Removed Values Added
Description Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. From 2.7.0 to 2.11.0, conditional-format extraction indexes required child slices or dereferences an optional colorScale child without validating malformed rule structure. GetConditionalFormats reaches extractCondFmtCellIs and also indexes ColorScale.Cfvo, DataBar.Cfvo, and DataBar.Color without complete structural checks. When a crafted worksheet supplies a cellIs, dataBar, or colorScale rule missing expected children and the application calls GetConditionalFormats, missing formula, color, value-object, or colorScale data reaches an out-of-range index or nil dereference, allowing an attacker to panic and terminate an unprotected process. No fixed version is available as of this review.
Title Excelize: GetConditionalFormats indexes conditional-formatting rule sub-elements with no length or nil check
Weaknesses CWE-129
CWE-476
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'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-07T18:45:20.249Z

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

Link: CVE-2026-107222

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

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

Modified: 2026-10-07T19:17:34.800

Link: CVE-2026-107222

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-07T20:45:07Z

Weaknesses
  • CWE-129

    Improper Validation of Array Index

  • CWE-476

    NULL Pointer Dereference