
Se ha identificado una
vulnerabilidad crítica en los flujos libxml de PHP, que podría afectar
a las aplicaciones web que utilizan las extensiones DOM o
SimpleXML para las solicitudes HTTP.
La falla, identificada como
CVE-2025-1219, implica el manejo incorrecto del encabezado content-type al
solicitar un recurso redirigido, lo que genera riesgos de seguridad como la
interpretación errónea de documentos y la omisión de la validación.
La vulnerabilidad afecta a las versiones de PHP: inferiores a 8.1.32, <8.2.28, <8.3.18, <8.4.5.
Detalles de la vulnerabilidad
El problema surge cuando el contenedor de flujo HTTP sigue una redirección. En
lugar de borrar los encabezados capturados previamente antes de ejecutar las
solicitudes posteriores, añade los encabezados de varias solicitudes a una
única matriz.
Esto genera una matriz que contiene los encabezados de todas las solicitudes,
y los encabezados de la última solicitud se colocan en último lugar.
La función php_libxml_input_buffer_create_filename() o
php_libxml_sniff_charset_from_stream() escanea esta matriz en busca de
un encabezado de tipo de contenido para determinar el conjunto de caracteres
de la respuesta.
Sin embargo, procesa los encabezados secuencialmente de arriba a abajo y se
detiene en el primer encabezado de tipo de contenido que encuentra.
Según el informe de PHP, este encabezado podría no corresponder a la respuesta
final que contiene el cuerpo HTML que se está analizando. En consecuencia, los
documentos podrían analizarse con un conjunto de caracteres incorrecto, lo que
podría generar problemas de seguridad.
Esta vulnerabilidad puede permitir a los atacantes manipular el análisis de
los documentos aprovechando la detección de conjuntos de caracteres
incorrectos. Por ejemplo:
Los documentos podrían malinterpretarse, alterando su significado original.
Los procesos de validación podrían omitirse si un documento se analiza
incorrectamente.
Exportar dichos documentos mediante métodos como saveHtml() podría
generar resultados no deseados con el conjunto de caracteres original
conservado. Las aplicaciones que utilizan las extensiones DOM o SimpleXML de
PHP para solicitudes HTTP son particularmente vulnerables.
Prueba de Concepto
Una prueba de concepto (PoC) demuestra cómo se puede explotar esta
vulnerabilidad:
Un script de redirección (redirect.php) envía un
encabezado content-type que especifica un conjunto de
caracteres (UTF-16) y redirige a otro recurso. Al acceder mediante las
extensiones DOMDocument o SimpleXML de PHP,
el encabezado de tipo de contenido inicial se utiliza incorrectamente para el
análisis, en lugar del de la respuesta final.
Este comportamiento puede provocar análisis incorrectos y omisiones de
validación, como se observa en escenarios donde el contenido HTML exportado
conserva su conjunto de caracteres original a pesar de ser manipulado.
Para protegerse contra CVE-2025-1219, se recomienda encarecidamente a los
usuarios que
actualicen sus instalaciones de PHP a una de las versiones parcheadas. Reinicie cualquier servicio que dependa de PHP después de la
actualización.
Fuente:
CybersecurityNews