🔍 CVE-2026-107225

6.5
CVSS Score
MEDIUM
2026-10-07
2026-10-13 13:08
✅ 완료

🇰🇷 한글 설명

Go 언어용 Excel 라이브러리인 Excelize의 2.8.0에서 2.11.0 버전 사이에서 스타일 추출 시 인덱스 범위 검증 오류가 발생합니다. 공격자가 조작된 styles.xml 파일을 통해 음수 ID 값을 제공하면, 상한선만 체크하는 검증 로직을 통과하여 음수 슬라이스 인덱스 참조로 인한 패닉(Panic)이 발생할 수 있습니다.

💡 쉬운 설명

엑셀 파일을 읽는 프로그램이 잘못된 숫자가 들어있는 파일을 읽을 때, 프로그램이 예상치 못한 오류를 일으키며 갑자기 멈춰버릴 수 있는 문제입니다. 공격자가 특수하게 제작된 엑셀 파일을 보내 프로그램의 작동을 방해할 수 있습니다.

🇺🇸 원문 (English)

Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. From 2.8.0 to 2.11.0, GetStyle's fill, border, and font extraction predicates check only upper bounds for attacker-controlled style-table indices. File.GetStyle relies on extractStyleCondFuncs predicates that allow negative FillID, BorderID, and FontID values to reach slice indexing. When a crafted styles.xml supplies a negative fillId, borderId, or fontId and the application reads the style, a negative identifier passes the upper-bound-only predicate and becomes a negative slice index, allowing an attacker to panic while reading cell styling. No fixed version is available as of this review.

📍 영향받는 시스템

Excelize library (Go language) versions 2.8.0 to 2.11.0

⚔️ 공격 벡터

조작된 styles.xml 파일 내에 음수 fillId, borderId 또는 fontId를 포함시켜 전달

🛡️ 대응 방법

현재 고정된 버전이 없으므로, 해당 라이브러리 사용 시 입력 데이터의 스타일 인덱스에 대한 엄격한 유효성 검증 로직을 직접 구현하거나 패치 업데이트를 대기해야 함

🔧 검증 코드

출력된 버전 번호가 2.8.0 이상 2.11.0 이하인지 확인

Shell / Script
go list -m github.com/xuri/excelize/v2 2>/dev/null

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Microsoft Excel