Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en PhpSpreadsheet (CVE-2024-48917)

Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-611 Restricción incorrecta de referencia a entidad externa XML (XXE)
Fecha de publicación:
18/11/2024
Última modificación:
07/03/2025

Descripción

PhpSpreadsheet es una librería PHP para leer y escribir archivos de hojas de cálculo. La clase `XmlScanner` tiene un método de escaneo que debería evitar ataques XXE. Sin embargo, en una omisión del `CVE-2024-47873` informado anteriormente, las expresiones regulares del método `findCharSet`, que se utiliza para determinar la codificación actual, se pueden omitir utilizando un payload en la codificación UTF-7 y agregando al final del archivo un comentario con el valor `encoding="UTF-8"` con `"`, que coincide con la primera expresión regular, de modo que `encoding='UTF-7'` con comillas simples `'` en el encabezado XML no coincida con la segunda expresión regular. Un atacante puede omitir el desinfectante y lograr un ataque de entidad externa XML. Las versiones 1.9.4, 2.1.3, 2.3.2 y 3.4.0 solucionan el problema.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:phpoffice:phpspreadsheet:*:*:*:*:*:*:*:* 1.29.4 (excluyendo)
cpe:2.3:a:phpoffice:phpspreadsheet:*:*:*:*:*:*:*:* 2.0.0 (incluyendo) 2.1.3 (excluyendo)
cpe:2.3:a:phpoffice:phpspreadsheet:*:*:*:*:*:*:*:* 2.2.0 (incluyendo) 2.3.2 (excluyendo)
cpe:2.3:a:phpoffice:phpspreadsheet:*:*:*:*:*:*:*:* 3.3.0 (incluyendo) 3.4.0 (excluyendo)