Advisory Database
  • Advisories
  • Dependency Scanning
  1. golang
  2. ›
  3. github.com/xuri/excelize/v2
  4. ›
  5. CVE-2026-107216

CVE-2026-107216: Excelize ANCHORARRAY: mutually-referencing array formulas recurse unboundedly via re-entrant CalcCellValue, causing a fatal stack overflow

October 8, 2026

ANCHORARRAY (calc.go:15137 on current master) evaluates each cell of the referenced spill range by calling the exported CalcCellValue, which unconditionally constructs a fresh calcContext — fresh entry marker, fresh iterations map, full MaxCalcIterations budget (calc.go:896-900). The circular-reference control only exists within one context: the entry-exclusion marker and per-ref iteration budget are fields of that single context, and completion-based caching (formulaArgCache/calcRawCache) only ever stores results of evaluations that finish.

During a pure cycle no nested evaluation ever finishes, so nothing is ever cached to break the recursion, and each hop re-arms the entire budget. Two ordinary, Excel-legal constructs in an attacker-supplied workbook are enough:

  • A1 (dynamic array formula, ref A1:A1): _xlfn.ANCHORARRAY($B$1)
  • B1 (dynamic array formula, ref B1:B1): _xlfn.ANCHORARRAY($A$1)

→ CalcCellValue → calcCellValue → evalInfixExp → parseReference → cellResolver → … → ANCHORARRAY → CalcCellValue → … forever, ending in a fatal, unrecoverable Go runtime error: runtime: goroutine stack exceeds …-byte limit / fatal error: stack overflow. Go stack overflows cannot be recovered — the whole process aborts.

References

  • github.com/advisories/GHSA-wp2g-vpjj-g53r
  • github.com/qax-os/excelize/commit/ea12859e43c64d498ecf839263c5f917391f3316
  • github.com/qax-os/excelize/security/advisories/GHSA-wp2g-vpjj-g53r
  • nvd.nist.gov/vuln/detail/CVE-2026-107216

Code Behaviors & Features

Detect and mitigate CVE-2026-107216 with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →

Affected versions

All versions starting from 2.8.1 before 2.11.1-0.20260911060113-ea12859e43c6

Fixed versions

  • 2.11.1-0.20260911060113-ea12859e43c6

Solution

Upgrade to version 2.11.1-0.20260911060113-ea12859e43c6 or above.

Impact 7.5 HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Learn more about CVSS

Weakness

  • CWE-674: Uncontrolled Recursion

Source file

go/github.com/xuri/excelize/v2/CVE-2026-107216.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Sun, 08 Nov 2026 00:16:09 +0000.