Se ha revelado una vulnerabilidad de alta gravedad en la librería PHP Dompdf de código abierto, identificada como CVE-2023-23924 con puntuación CVSS:10, al explotar esta falla con éxito, un atacante podría conducir a la ejecución remota de código en un servidor destino.
Dompdf es una herramienta que permite leer un documento HTML y convertirlo a PDF. Principalmente es un motor de renderizado basado en estilos y diseño HTML compatible con CSS 2.1 escrito en PHP.
Esta vulnerabilidad afecta a todas las versiones de la librería con versiones 2.0.1 e inferiores, se ha corregido esta falla en la versión 2.0.2.
Dompdf 2.0.2 requiere lo siguiente:
- PHP 7.1 o superior
- html5-php v2.0.0 o superior
- php-font-lib v0.5.4 o superior
- php-svg-lib v0.3.3 o superior
La validación de URI en dompdf 2.0.1 se puede omitir en el análisis de SVG pasando etiquetas <image> con letras mayúsculas.
PoC
El error ocurre durante el análisis SVG de las etiquetas <image>, en src/Image/Cache.php. Analizar el siguiente archivo SVG es suficiente para reproducir la vulnerabilidad:
<svg>
<Image xlink:href=»phar:///foo»></Image>
</svg>
Como la etiqueta se llama «Image» y no «image», no pasará la condición para activar la verificación.
Una solución sería usar la función strtolower($name) antes de la verificación:
if (strtolower($name) === «image»)
Recomendaciones
- Los usuarios de la librería Dompdf deben actualizar a la versión 2.0.2 lo antes posible.
Referencias