PhpSpreadsheet는 스프레드시트 파일을 읽고 쓰기 위한 순수 PHP 라이브러리입니다. 1.30.4, 2.1.16, 2.4.5, 3.10.5 및 5.7.0 이전에는 XLSX 판독기의 ColumnAndRowAttributes::readRowAttributes() 메서드가 스프레드시트 최대 행 제한(AddressRange::MAX_ROW = 1,048,576)에 대해 유효성을 검사하지 않고 XML 속성에서 행 번호를 읽습니다. 공격자는 캐시된HighestRow를 999,999,999로 확장하는 <row r="999999999"/> 요소가 포함된 최소 XLSX 파일(~1.6KB)을 제작하여 하위 시퀀스를 유발할 수 있습니다.
PhpSpreadsheet는 스프레드시트 파일을 읽고 쓰기 위한 순수 PHP 라이브러리입니다. 1.30.4, 2.1.16, 2.4.5, 3.10.5 및 5.7.0 이전에는 XLSX 판독기의 ColumnAndRowAttributes::readRowAttributes() 메서드가 스프레드시트 최대 행 제한(AddressRange::MAX_ROW = 1,048,576)에 대해 유효성을 검사하지 않고 XML 속성에서 행 번호를 읽습니다. 공격자는 캐시된HighestRow를 999,999,999로 확장하는 요소가 포함된 최소 XLSX 파일(~1.6KB)을 제작할 수 있으며, 이로 인해 후속 행 반복이 최대 10억 루프 주기를 시도하고 CPU 리소스를 소진하게 됩니다. 이 취약점은 1.30.4, 2.1.16, 2.4.5, 3.10.5 및 5.7.0에서 수정되었습니다.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 75.00 |
| 악용 신호(PoC 존재) | ×1.20 |
| VPI | 90.00 |
VPI 공식 vpi-v1 기준