CVE-2026-107218: Excelize RIGHT() function panic on supplementary-plane text with negative index

CVE-2026-107218 · Severity: medium · CVSS 5.3 · Published 2026-10-07

Excelize is a Go library for reading and writing Excel files. A logic error in the RIGHT() formula function can cause the application to crash when processing specially crafted spreadsheets containing certain Unicode characters. This denial-of-service issue can be triggered automatically when a malicious file is normalized using AutoFitColWidth, or manually through explicit formula evaluation.

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

Quick answers

Is CVE-2026-107218 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-107218 being exploited in the wild.
How severe is CVE-2026-107218?
Medium severity, with a CVSS score of 5.3, published 7 October 2026.
Which products and versions are affected?
Excelize v2.10.1, v2.11.0; github.com/xuri/excelize/v2 (Go) >= 2.10.1, < 2.11.1-0.20260908032718-ecd99d761fe0, SEMVER:introduced=2.10.1,fixed=2.11.1-0.20260908032718-ecd99d761fe0.
Is there a fix for CVE-2026-107218?
Yes. github.com/xuri/excelize/v2 (Go): upgrade to 2.11.1-0.20260908032718-ecd99d761fe0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-107218 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-107218?
Check whether you run 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.20260908032718-ecd99d761fe0 or later
    go get github.com/xuri/excelize/v2@v2.11.1-0.20260908032718-ecd99d761fe0

Technical details

A unit mismatch in the RIGHT() function allows a negative array index to bypass bounds checking: the guard uses UTF-16 code unit counting (where supplementary-plane characters count as 2), but the slice operation uses UTF-8 rune counting (where they count as 1). For text with supplementary-plane characters, this causes a panic on slice bounds out of range. The vulnerability is reachable without user interaction via AutoFitColWidth (added in v2.11.0) or through explicit CalcCellValue calls.

Affected products

  • Excelize Excelize v2.10.1, v2.11.0

Identifiers

  • CVE-2026-107218
  • GHSA-8jjq-8j9w-m2v6
  • GO-2026-6675

Timeline

  • 2026-10-07: disclosed

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