🔍 CVE-2026-59932

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

🇰🇷 한글 설명

PhpSpreadsheet의 Gnumeric 리더에서 압축 해제 시 크기 제한을 검증하지 않아 발생하는 취약점입니다. 공격자가 조작된 .gnumeric 파일을 업로드하면 압축 해제 과정에서 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 Gnumeric reader reads attacker-supplied .gnumeric files into memory and, when the file starts with gzip magic bytes, calls gzdecode() on the full compressed contents without enforcing a decompressed-size limit. A very small compressed .gnumeric file can expand to data larger than the PHP memory limit and crash the process during Gnumeric::canRead() before the file is rejected or fully parsed. This is reachable through normal file-type detection and Gnumeric loading paths, so applications that accept attacker-controlled spreadsheet uploads can suffer denial of service. This issue has been fixed in versions 5.8.1, 3.10.7, 2.4.7, 2.1.18 and 1.30.6.

📍 영향받는 시스템

PhpSpreadsheet versions 5.8.0, 3.10.6, 2.4.6, 2.1.17, 1.30.5 and below

⚔️ 공격 벡터

공격자가 조작된 gzip 압축 형식을 포함한 .gnumeric 파일을 업로드하여 서버의 메모리 자원을 고갈시킴

🛡️ 대응 방법

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

🔧 검증 코드

출력된 버전 정보가 취약한 버전 범위에 포함되는지 확인하십시오.

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