🔍 CVE-2026-59933

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

🇰🇷 한글 설명

PhpSpreadsheet 라이브러리의 OLE 리더가 XLS/OLE 메타데이터의 섹터 체인을 처리할 때 순환 참조를 감지하지 못하거나 최대 길이를 제한하지 않는 취약점이 발견되었습니다. 공격자가 조작된 작은 크기의 .xls 파일을 업로드하면 PHP 프로세스가 메모리를 모두 소모하여 서비스 거부(DoS) 상태에 빠질 수 있습니다.

💡 쉬운 설명

엑셀 파일을 읽는 프로그램이 파일 내부의 잘못된 연결 고리에 빠져 무한 반복 작업을 수행하게 만드는 공격입니다. 이로 인해 서버의 메모리가 가득 차서 서비스가 중단될 수 있습니다.

🇺🇸 원문 (English)

PhpSpreadsheet is a pure PHP library for reading and writing spreadsheet files. In versions 4.0.0 through 5.8.0, 3.3.0 through 3.10.6, 2.2.0 through 2.4.6, 2.0.0 through 2.1.17, and all releases up to and including 1.30.5, the OLE reader follows sector chains from attacker-controlled XLS/OLE metadata without detecting cycles or enforcing a maximum chain length. A tiny malformed .xls/OLE file can set the small-block depot sector chain to point back to itself. During normal XLS detection, OLERead::read() appends the same sector data repeatedly until the PHP process exhausts memory. This is reachable from Reader\Xls::canRead() and therefore from automatic spreadsheet type detection. Applications that accept attacker-controlled spreadsheet uploads can suffer denial of service from a very small file. This issue has been fixed in versions 5.8.1, 3.10.7, 2.4.7, 2.1.18 and 1.30.6.

📍 영향받는 시스템

PhpSpreadsheet 5.8.0, 3.10.6, 2.4.6, 2.1.17, 1.30.5 및 그 이하 모든 버전

⚔️ 공격 벡터

공격자가 조작된 섹터 체인을 포함한 작은 크기의 .xls 파일을 업로드하여 서버의 자동 스프레드시트 유형 감지 기능을 트리거함

🛡️ 대응 방법

PhpSpreadsheet를 최신 보안 패치 버전(5.8.1, 3.10.7, 2.4.7, 2.1.18, 1.30.6 이상)으로 업데이트하십시오.

🔧 검증 코드

출력된 버전 번호가 취약한 버전 범위(예: 1.30.5 이하 등)에 포함되는지 확인하십시오.

Shell / Script
composer show phpoffice/phpspreadsheet | grep 'versions'

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

PHP