🔍 CVE-2026-107212

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

🇰🇷 한글 설명

Excelize Go 라이브러리 2.1.0에서 2.11.0 버전 사이에서 발생하는 취약점으로, Rows.Columns 함수가 행 제한을 제대로 적용하지 않아 발생합니다. 공격자가 조작된 워크시트를 통해 비정상적으로 큰 행 번호를 포함시키면, 반복자가 누락된 모든 행을 탐색하려 시도하여 CPU 자원을 과도하게 소모하게 만듭니다.

💡 쉬운 설명

엑셀 파일을 읽는 프로그램의 허점을 이용해, 존재하지 않는 엄청나게 많은 줄을 읽으라고 명령하는 방식입니다. 이로 인해 컴퓨터의 두뇌 역할을 하는 CPU가 과부하에 걸려 시스템이 느려지거나 멈출 수 있습니다.

🇺🇸 원문 (English)

Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. From 2.1.0 to 2.11.0, Rows.Columns accepts a look-ahead row number above TotalRows without applying the limit enforced by Rows.Next. File.GetRows relies on Rows.Next and Rows.Columns, but Rows.Columns consumes the row r attribute without the limit check in Rows.Next. When a crafted worksheet places an oversized row number after an ordinary valid row and the application calls GetRows or iterates Rows, the iterator advances through every missing row number instead of rejecting the workbook, allowing an attacker to consume a CPU core for an attacker-controlled duration. No fixed version is available as of this review.

📍 영향받는 시스템

Excelize Go library versions 2.1.0 to 2.11.0

⚔️ 공격 벡터

조작된 행 번호가 포함된 악성 엑셀 파일을 업로드하거나 처리하도록 유도하여 CPU 자원 고갈 유도

🛡️ 대응 방법

현재 고정된 버전이 없으므로, 해당 라이브러리 사용 시 입력 데이터의 행 범위를 검증하거나 패치 업데이트를 대기해야 함

🔧 검증 코드

출력된 결과에서 excelize의 버전이 2.1.0에서 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