[ 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
- github.com/xuri/excelize/v2 2.11.1-0.20260908032718-ecd99d761fe0Fixed version · GitHub Advisories · go package github.com/xuri/excelize/v2: upgrade to 2.11.1-0.20260908032718-ecd99d761fe0 or later (affected >= 2.10.1, < 2.11.1-0.20260908032718-ecd99d761fe0)
- Patch on github.comVendor patch or bulletin · NVD · Reference tagged 'Patch' by NVD
- Patch on github.comVendor patch or bulletin · NVD · Reference tagged 'Patch' by NVD
[ 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
[ References ]References
- github.com/qax-os/excelize/commit/ecd99d761fe0489f1ed308e2f7dc2e0502d1a396Patch
- github.com/qax-os/excelize/pull/2390Issue TrackingPatch
- github.com/qax-os/excelize/security/advisories/GHSA-8jjq-8j9w-m2v6ExploitVendor Advisory