🔍 CVE-2026-34084

9.8
CVSS Score
CRITICAL
2026-05-05
2026-07-24 22:10
✅ 완료

🇰🇷 한글 설명

PhpSpreadsheet 라이브러리의 IOFactory::load() 메서드에서 사용자 입력 파일명이 PHP 스트림 래퍼(phar://, ftp://, ssh2.sftp://)를 통과하도록 허용하여 PHAR 역직렬화 및 원격 코드 실행이 발생합니다. ftp:// 및 ssh2.sftp:// 래퍼는 서버 측 요청 위조 공격에 사용될 수 있습니다.

💡 쉬운 설명

엑셀 파일 처리 라이브러리가 파일명 검증 결함으로 인해 공격자가 악의적인 파일을 로드하도록 유도할 수 있습니다. 이를 통해 서버가 해킹되거나 다른 시스템에 부정당한 접근이 발생할 수 있습니다.

🇺🇸 원문 (English)

PhpSpreadsheet is a library for reading and writing spreadsheet files. In versions 1.30.2 and earlier, 2.0.0 through 2.1.14, 2.2.0 through 2.4.3, 3.3.0 through 3.10.3, and 4.0.0 through 5.5.0, when the filename argument to IOFactory::load() is user-controlled, an attacker can supply a PHP stream wrapper path (such as phar://, ftp://, or ssh2.sftp://) that passes the is_file() check in File::assertFile(). The phar:// wrapper triggers deserialization of the PHAR metadata, which can lead to remote code execution if a suitable gadget chain is available in the application. The ftp:// and ssh2.sftp:// wrappers can be used for server-side request forgery. This issue has been fixed in versions 1.30.3, 2.1.15, 2.4.4, 3.10.4, and 5.6.0.

📍 영향받는 시스템

PhpSpreadsheet 1.30.2 이하, 2.0.0~2.1.14, 2.2.0~2.4.3, 3.3.0~3.10.3, 4.0.0~5.5.0

⚔️ 공격 벡터

사용자 제어 가능한 파일명을 IOFactory::load()에 전달하여 PHP 스트림 래퍼를 이용한 PHAR 메타데이터 역직렬화 또는 SSRF 공격 실행

🛡️ 대응 방법

PhpSpreadsheet를 버전 1.30.3, 2.1.15, 2.4.4, 3.10.4, 또는 5.6.0 이상으로 업그레이드

🔧 검증 코드

설치된 PhpSpreadsheet 버전이 표시되며, 명시된 취약 범위(1.30.2 이하, 2.0.0~2.1.14, 2.2.0~2.4.3, 3.3.0~3.10.3, 4.0.0~5.5.0)에 해당하면 패치 필요

Shell / Script
composer show phpoffice/phpspreadsheet 2>/dev/null | grep version

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

PHP