[ CVE-2026-107218 · Published 7 Oct 2026 ]

Excelize: RIGHT() on supplementary-plane text slices with a negative index and panics

CVSS 5.3 EPSS <1%Fix available

[ Description ]Official description

Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. From 2.10.1 to 2.11.0, RIGHT validates the requested length with UTF-16 code-unit counts but slices a rune array using Unicode code-point counts. RIGHT reaches leftRight through CalcCellValue, where countUTF16String validates one unit but utf8.RuneCountInString supplies the slice index in another. When RIGHT evaluates supplementary-plane text with a requested character count between the rune count and UTF-16 code-unit count, the inconsistent units produce a negative rune-slice index, allowing an attacker to panic during formula evaluation. No fixed version is available as of this review.

[ Fixes ]Fixes and patches

[ Packages ]Affected open-source packages

  • github.com/xuri/excelize/v2 goAffected >= 2.10.1, < 2.11.1-0.20260908032718-ecd99d761fe0 · fixed in 2.11.1-0.20260908032718-ecd99d761fe0 · GHSA-8jjq-8j9w-m2v6