🔍 CVE-2026-107216

7.5
CVSS Score
HIGH
2026-10-07
2026-10-13 14:23
✅ 완료

🇰🇷 한글 설명

Excelize 라이브러리에서 ANCHORARRAY 함수가 CalcCellValue를 재귀적으로 호출할 때 계산 컨텍스트를 매번 새로 생성하여 순환 제어 기능을 우회하는 취약점입니다. 공격자가 상호 참조하는 동적 배열 수식을 사용하여 재귀 호출 시마다 사이클 예산을 초기화함으로써 Go 스택 오버플로를 유발하고 프로세스를 중단시킬 수 있습니다.

💡 쉬운 설명

엑셀 파일을 처리하는 프로그램에서 특정 수식이 무한 반복되도록 만들어 컴퓨터 프로그램을 강제로 종료시킬 수 있는 오류입니다. 악의적인 엑셀 파일을 열기만 해도 프로그램이 멈추거나 꺼질 수 있습니다.

🇺🇸 원문 (English)

Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. From 2.8.1 to 2.11.0, ANCHORARRAY recursively calls the exported CalcCellValue function, creating a fresh calculation context at each cycle and bypassing in-flight and iteration controls. ANCHORARRAY calls CalcCellValue instead of cellResolver, so each recursive hop receives a new calcContext and loses cycle state. When mutually referencing dynamic-array formulas are evaluated directly or through formula-evaluating APIs, each recursion hop resets the cycle budget and prevents completion-based caches from breaking the cycle, allowing an attacker to cause a fatal Go stack overflow and abort the process. No fixed version is available as of this review.

📍 영향받는 시스템

Excelize Go library versions 2.8.1 to 2.11.0

⚔️ 공격 벡터

상호 참조하는 동적 배열 수식이 포함된 악성 엑셀 파일을 통해 재귀 호출 유도

🛡️ 대응 방법

현재 수정 버전이 없으므로 해당 라이브러리 사용 시 외부 입력 파일에 대한 검증을 강화하거나 패치 업데이트를 대기해야 함

🔧 검증 코드

출력된 결과에서 excelize의 버전이 2.8.1에서 2.11.0 사이인지 확인

Shell / Script
go list -m all | grep excelize

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Microsoft Excel