Patch Forecast
Yellow warning
Plan into this sprint.

CVE-2026-107211 · GHSA-mx22-3794-2vpv

Excelize: Unchecked pivot-cache field index in extractPivotTableFields causes unrecoverable panic

Risk score
45/100
CVSS
5.5 v3.1
Exploit chance (30 days)
0.2%
Published
7 Oct 2026

Open in the live forecast Today's forecast

What to know

What it is
Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. From 2.8.1 to 2.11.0, separately parsed pivot-table field indices are used to index the pivot-cache field-name slice without bounds checks. extractPivotTableFields uses getPivotCacheFieldsName output while processing GetPivotTables…
Affected
github.com/xuri/excelize/v2 (go) >= 2.8.1, < 2.11.1-0.20261003002531-6258dcebc4e2
Fix
Upgrade github.com/xuri/excelize/v2 to 2.11.1-0.20261003002531-6258dcebc4e2 or later.
Exploitation
Public proof of concept

Story map

Story map: github.com/xuri/excelize/v2THE FLAWSTHE FIXCVE-2026-107211Excelize: Uncheckedpivot-cache field index inextractPivotTableFields…CVSS 5.5 · EPSS 0%CVE-2026-107223Excelize: Unbounded <col max>attribute is loaded with noMaxColumns check and…CVSS 7.5 · EPSS 0%CVE-2026-107212Excelize: Unbounded rownumber in Rows.Columns makesGetRows and the Rows…CVSS 7.5 · EPSS 0%CVE-2026-107217Excelize ColumnNameToNumber:int64 overflow yields anout-of-domain coordinate…CVSS 7.5 · EPSS 0%FixUpgradegithub.com/xuri/excelize/v2 to2.11.1-0.20260807015645-a54c578af309 or later.Who is exposedgithub.com/xuri/excelize/v2(go) >= 2.1.0, <2.11.1-0.20260807015645-a54c578af309AMBER · PATCH THIS WEEKgithub.com/xuri/excelize/v2Excelize is a Go language libraryfor reading and writingMicrosoft Excel spreadsheets.From 2.1.0 to 2.11.0, flatColsexpands file-loaded columnranges without validating Minand Max against the worksheet…Where it standsPublic proof of conceptCONNECTS TOSame weaknessCWE-129 (CWE-129)22 other warnings in 30 days →Same productEarlier github.com/xuri/excelize/v2 warnings11 in the last 90 days →
Story map: the flaws, the fix, how it unfolded and what it connects to. Boxes link to the record or article.

At a glance

github.com/xuri/excelize/v2: Amber, patch this week. Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. From 2.1.0 to 2.11.0, flatCols expands file-loaded column ranges without validating Min and Max against the worksheet column limit. SetColWidth reaches flatCols, which expands xlsxCol.Min through xlsxCol.Max without enforcing MaxCo…

The flaws

  • CVE-2026-107211: Excelize: Unchecked pivot-cache field index in extractPivotTableFields causes unrecoverable panic (CVSS 5.5 · EPSS 0%)
  • CVE-2026-107223: Excelize: Unbounded <col max> attribute is loaded with no MaxColumns check and expanded per-column by flatCols(), so any column mutator hangs or OOMs the process (CVSS 7.5 · EPSS 0%)
  • CVE-2026-107212: Excelize: Unbounded row number in Rows.Columns makes GetRows and the Rows iterator loop for days (CVSS 7.5 · EPSS 0%)
  • CVE-2026-107217: Excelize ColumnNameToNumber: int64 overflow yields an out-of-domain coordinate with nil error, causing negative slice index panic on r="0" rows (CVSS 7.5 · EPSS 0%)

The fix

Fix: Upgrade github.com/xuri/excelize/v2 to 2.11.1-0.20260807015645-a54c578af309 or later.

Who is exposed: github.com/xuri/excelize/v2 (go) >= 2.1.0, < 2.11.1-0.20260807015645-a54c578af309

Where it stands

  • Public proof of concept

Connects to

Why it is Yellow

  • CVSS 5.5 medium
  • Public exploit or proof of concept referenced
  • On your watchlist: Go

Affected packages

PackageEcosystemVulnerableFixed in
github.com/xuri/excelize/v2go>= 2.8.1, < 2.11.1-0.20261003002531-6258dcebc4e22.11.1-0.20261003002531-6258dcebc4e2

References

Original description

Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. From 2.8.1 to 2.11.0, separately parsed pivot-table field indices are used to index the pivot-cache field-name slice without bounds checks. extractPivotTableFields uses getPivotCacheFieldsName output while processing GetPivotTables and trusts the dataField fld attribute as an index. When a crafted workbook supplies a pivot-field count mismatch or an out-of-range dataField fld value before GetPivotTables is called, the unchecked index causes a Go slice-bounds panic that escapes the library, allowing an attacker to crash the process or request worker. No fixed version is available as of this review.

Last activity 7 Oct 2026. Patch Forecast updates every hour.