🔍 CVE-2026-107218

5.3
CVSS Score
MEDIUM
2026-10-07
2026-10-13 14:23
✅ 완료

🇰🇷 한글 설명

Go 언어용 Excel 라이브러리인 Excelize의 2.10.1에서 2.11.0 버전 사이에서 발생하는 취약점입니다. RIGHT 함수가 UTF-16 코드 단위와 Unicode 코드 포인트 간의 불일치로 인해 음수 인덱스를 생성할 수 있으며, 이로 인해 수식 계산 중 패닉(Panic)이 발생할 수 있습니다.

💡 쉬운 설명

엑셀 수식을 계산할 때 글자 수를 세는 방식이 서로 달라 발생하는 오류입니다. 특수한 문자가 포함된 파일을 열어 수식을 실행하면 프로그램이 갑자기 멈추거나 강제 종료될 수 있습니다.

🇺🇸 원문 (English)

Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. From 2.10.1 to 2.11.0, RIGHT validates the requested length with UTF-16 code-unit counts but slices a rune array using Unicode code-point counts. RIGHT reaches leftRight through CalcCellValue, where countUTF16String validates one unit but utf8.RuneCountInString supplies the slice index in another. When RIGHT evaluates supplementary-plane text with a requested character count between the rune count and UTF-16 code-unit count, the inconsistent units produce a negative rune-slice index, allowing an attacker to panic during formula evaluation. No fixed version is available as of this review.

📍 영향받는 시스템

Excelize library versions 2.10.1 to 2.11.0

⚔️ 공격 벡터

공격자가 특수 문자가 포함된 엑셀 파일을 작성하여 피해자가 수식을 계산하도록 유도함

🛡️ 대응 방법

현재 수정 버전이 없으므로, 해당 라이브러리 사용 시 입력값 검증을 강화하거나 패치 출시를 기다려야 함

🔧 검증 코드

출력된 버전이 2.10.1에서 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:N/S:U/C:N/I:N/A:L

💻 영향받는 소프트웨어

Microsoft Excel