CVE-2026-107221: Excelize row cell reordering panic in worksheet read

CVE-2026-107221 · Severity: medium · CVSS 6.5 · Published 2026-10-07

Excelize is a Go library for reading and writing Excel spreadsheets. A maliciously crafted spreadsheet can cause the library to crash when common worksheet operations are performed, leading to a denial of service for any application using the library to process untrusted files.

Technologies: github.com/xuri/excelize/v2 (Go). Vendors: Go.

Quick answers

Is CVE-2026-107221 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-107221 being exploited in the wild.
How severe is CVE-2026-107221?
Medium severity, with a CVSS score of 6.5, published 7 October 2026.
Which products and versions are affected?
Excelize project Excelize all versions prior to fix; github.com/xuri/excelize/v2 (Go) >= 2.0.0, < 2.11.1-0.20260816084418-46a5eb289448, SEMVER:introduced=0,fixed=2.11.1-0.20260816084418-46a5eb289448, SEMVER:introduced=2.0.0,fixed=2.11.1-0.20260816084418-46a5eb289448.
Is there a fix for CVE-2026-107221?
Yes. github.com/xuri/excelize/v2 (Go): upgrade to 2.11.1-0.20260816084418-46a5eb289448 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-107221 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-107221?
Check whether you run Excelize project Excelize or github.com/xuri/excelize/v2 (Go) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • github.com/xuri/excelize/v2 (Go): upgrade to 2.11.1-0.20260816084418-46a5eb289448 or later
    go get github.com/xuri/excelize/v2@v2.11.1-0.20260816084418-46a5eb289448

Technical details

The vulnerability exists in the checkRow function which sizes a target slice based on the last cell's column position in document order, then attempts to scatter all cells into that slice by their column index. If an earlier cell references a higher column than the final cell, an out-of-bounds write occurs. This affects all non-streaming worksheet APIs (GetCellValue, SetCellValue, CalcCellValue, GetMergeCells, etc.) that invoke workSheetReader, but not the streaming GetRows path.

Affected products

  • Excelize project Excelize all versions prior to fix

Identifiers

  • CVE-2026-107221
  • GHSA-8mcq-6wmr-jrjv
  • GO-2026-6676

Timeline

  • 2026-10-07: disclosed
  • 2026-10-07: advisory: GHSA-8mcq-6wmr-jrjv published

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.