🔍 CVE-2026-35453

5.4
CVSS Score
MEDIUM
2026-05-05
2026-07-24 21:10
✅ 완료

🇰🇷 한글 설명

PhpSpreadsheet의 HTML Writer가 @ 플레이스홀더와 리터럴 텍스트를 포함하는 사용자 정의 숫자 형식을 사용할 때 htmlspecialchars() 이스케이핑을 건너뜀. 공격자가 스프레드시트 셀 내용을 제어할 수 있다면 생성된 HTML 출력에 임의의 JavaScript를 주입할 수 있음.

💡 쉬운 설명

Excel/스프레드시트 파일을 HTML로 변환할 때 특정 서식을 사용하면 악의적인 코드가 그대로 통과할 수 있습니다. 공격자가 이를 이용해 웹사이트에서 악성 스크립트를 실행시킬 수 있습니다.

🇺🇸 원문 (English)

PhpSpreadsheet is a library for reading and writing spreadsheet files. In versions 1.30.3 and earlier, 2.0.0 through 2.1.15, 2.2.0 through 2.4.4, 3.3.0 through 3.10.4, and 4.0.0 through 5.6.0, the HTML Writer skips htmlspecialchars() output escaping when a cell uses a custom number format containing the @ text placeholder with additional literal text (e.g., @ "items"). The escaping is only applied when the formatted output strictly equals the original cell value. When the format code contains @ with quoted literal text, the formatter substitutes the raw cell value into the format string and returns early without invoking the escaping callback. An attacker who can control cell content in a spreadsheet processed by the HTML Writer can inject arbitrary HTML and JavaScript into the generated output. This issue has been fixed in versions 1.30.4, 2.1.16, 2.4.5, 3.10.5, and 5.7.0.

📍 영향받는 시스템

PhpSpreadsheet 1.30.3 이하, 2.0.0~2.1.15, 2.2.0~2.4.4, 3.3.0~3.10.4, 4.0.0~5.6.0

⚔️ 공격 벡터

@ 플레이스홀더와 리터럴 텍스트를 포함하는 사용자 정의 숫자 형식으로 설정된 셀에 XSS 페이로드 입력

🛡️ 대응 방법

PhpSpreadsheet를 1.30.4, 2.1.16, 2.4.5, 3.10.5, 또는 5.7.0 이상으로 업그레이드

🔧 검증 코드

현재 설치된 PhpSpreadsheet 버전이 표시됨. 패치된 버전 이상인지 확인하고, 그 이하면 즉시 업그레이드 필요

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

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

PHP