🔍 CVE-2026-107217

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

🇰🇷 한글 설명

Go 언어용 Excel 라이브러리인 Excelize에서 열 이름을 숫자로 변환할 때 정수 오버플로가 발생합니다. 이로 인해 잘못된 열 이름이 0으로 변환되어 슬라이스 인덱스 오류를 유발하며, 공격자가 조작된 파일을 통해 프로세스를 강제 종료(Panic)시킬 수 있습니다.

💡 쉬운 설명

엑셀 파일을 읽는 프로그램에서 너무 긴 열 이름을 처리하다가 계산 오류가 발생합니다. 이 오류를 이용해 악성 엑셀 파일을 실행하면 프로그램이 갑자기 꺼지게 만들 수 있습니다.

🇺🇸 원문 (English)

Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. From 2.0.0 to 2.11.0 in github.com/xuri/excelize/v2 and from 1.1.0 to 1.4.1 in github.com/xuri/excelize, ColumnNameToNumber accumulates a bijective base-26 value in int64 without detecting overflow, allowing an invalid long column name to wrap to zero with no error. ColumnNameToNumber accepts the overflowing name VGWQHXLSDVIKWV, after which checkSheetR0 and xlsxWorksheet.checkRow use the wrapped column value as an index. When a crafted worksheet uses an overflowing column name in a row normalized by checkSheetR0 or checkRow, the wrapped zero column becomes a negative slice index during worksheet normalization, allowing an attacker to panic and terminate the calling process. No fixed version is available as of this review.

📍 영향받는 시스템

github.com/xuri/excelize/v2 (2.0.0 ~ 2.11.0), github.com/xuri/excelize (1.1.0 ~ 1.4.1)

⚔️ 공격 벡터

오버플로를 유발하는 조작된 열 이름이 포함된 엑셀 파일을 시스템에 업로드하거나 처리하도록 유도

🛡️ 대응 방법

현재 수정 버전이 없으므로, 입력되는 엑셀 파일의 열 이름 길이를 검증하거나 라이브러리 업데이트를 기다려야 함

🔧 검증 코드

출력된 모듈 버전이 취약한 범위(v2: 2.0.0-2.11.0, v1: 1.1.0-1.4.1)에 포함되는지 확인

Shell / Script
go list -m github.com/xuri/excelize/v2 || go list -m github.com/xuri/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