🔍 CVE-2026-107213

5.5
CVSS Score
MEDIUM
2026-10-07
2026-10-13 14:24
✅ 완료

🇰🇷 한글 설명

Excelize 라이브러리 2.9.0에서 2.11.0 버전 사이에서 발생하는 취약점으로, GetSlicers 함수가 워크시트의 ExtLst 요소를 확인한 후 드로잉 요소의 존재 여부를 검증하지 않고 참조하여 발생합니다. 공격자가 조작된 엑셀 파일을 사용하여 드로잉 요소 없이 ExtLst만 포함하도록 만들면, nil 포인터 역참조로 인해 프로세스가 비정상 종료(Panic)될 수 있습니다.

💡 쉬운 설명

엑셀 파일을 읽는 프로그램이 특정 데이터가 있는지 확인하지 않고 바로 접근하려다 오류가 발생하는 문제입니다. 악의적으로 만들어진 엑셀 파일을 열면 프로그램이 갑자기 꺼질 수 있습니다.

🇺🇸 원문 (English)

Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. From 2.9.0 to 2.11.0, GetSlicers checks for ExtLst but dereferences ws.Drawing without checking whether the independently optional drawing element exists. File.GetSlicers reads ws.Drawing.RID after seeing a worksheet extLst element even when the independently optional worksheet drawing element is absent. When a crafted worksheet contains an extLst element without a drawing element and the application calls GetSlicers, the nil ws.Drawing pointer is dereferenced while resolving the drawing relationship, allowing an attacker to panic and terminate an unprotected process. No fixed version is available as of this review.

📍 영향받는 시스템

Excelize library versions 2.9.0 to 2.11.0

⚔️ 공격 벡터

드로잉 요소가 누락된 ExtLst 요소를 포함한 조작된 엑셀 파일을 애플리케이션에 업로드하거나 처리하도록 유도

🛡️ 대응 방법

현재 수정 버전이 없으므로, 해당 라이브러리를 사용하는 애플리케이션의 입력값 검증을 강화하거나 라이브러리 업데이트를 기다려야 함

🔧 검증 코드

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

Shell / Script
go list -m all | grep excelize

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Microsoft Excel