Vulnerabilidad en PhpSpreadsheet (CVE-2024-47873)
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, antes de las versiones 1.9.4, 2.1.3, 2.3.2 y 3.4.0, las expresiones regulares utilizadas en el método `scan` y en el método findCharSet se pueden omitir utilizando UCS-4 y adivinando la codificación. 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.
Impacto
Puntuación base 3.x
7.50
Gravedad 3.x
ALTA
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) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://github.com/PHPOffice/PhpSpreadsheet/blob/39fc51309181e82593b06e2fa8e45ef8333a0335/src/PhpSpreadsheet/Reader/Security/XmlScanner.php
- https://github.com/PHPOffice/PhpSpreadsheet/security/advisories/GHSA-jw4x-v69f-hh5w
- https://owasp.org/www-community/vulnerabilities/XML_External_Entity_(XXE)_Processing
- https://www.w3.org/TR/xml/#sec-guessing-no-ext-info