Clicky

Nuevo ataque de ejecución de código PHP pone en riesgo los sitios de WordPress

Fallo de PHP en WordPress

Un atacante puede usar en una amplia gama de escenarios funciones de bajo riesgo

Sam Thomas, un investigador de seguridad de Secarma, ha descubierto una nueva técnica de explotación que podría facilitar a los piratas informáticos desencadenar vulnerabilidades críticas de deserialización en el lenguaje de programación PHP utilizando funciones consideradas de bajo riesgo.

La nueva técnica deja cientos de miles de aplicaciones web abiertas para ataques remotos de ejecución de código, incluidos sitios web impulsados por algunos populares sistemas de administración de contenido como WordPress y Typo3.

Las vulnerabilidades de serialización PHP o inyección de objetos se documentaron inicialmente en 2009, lo que podría permitir a un atacante realizar diferentes tipos de ataques mediante el suministro de entradas maliciosas a la función PHP unserialize().

Si no lo sabes, la serialización es el proceso de conversión de objetos de datos en una cadena simple, y el programa de ayuda de la función de desinstalación vuelve a crear un objeto a partir de una cadena.

Thomas descubrió que un atacante puede usar en una amplia gama de escenarios funciones de bajo riesgo contra archivos Phar para desencadenar ataques de deserialización sin requerir el uso de la función unserialize().

Los archivos Phar, un formato de archivo en PHP, almacena los metadatos en un formato serializado, que se extraterminará cuando una función de operación de archivos (fopen, file_exists, file_get_contents, etc.) intente acceder al archivo.

"Esto es cierto tanto para las operaciones de archivos directos (como "file_exists") como indirectas como las que ocurren durante el procesamiento de entidades externas dentro de XML (es decir, cuando se está explotando una vulnerabilidad XXE)", dijo Thomas.

Explotando el ataque de deserialización de PHP contra sitios de WordPress

ataque de deserialización en WordPress

En un documento detallado publicado la semana pasada en la conferencia Black Hat, Thomas demostró cómo se puede ejecutar este ataque contra sitios de Wordpress usando una cuenta de autor para tomar el control total sobre el servidor web.

Para una explotación exitosa de la falla, todo lo que un atacante debe hacer es cargar un archivo Phar válido que contenga el objeto de carga maliciosa en el sistema de archivos local del objetivo y hacer que la función de operación de archivo acceda usando el contenedor de flujo "phar://".

Thomas también reveló que un atacante puede incluso aprovechar esta vulnerabilidad utilizando una imagen JPEG, originalmente un archivo Phar convertido en JPEG válido al modificar sus primeros 100 bytes.

"La forma en que ciertas funciones de miniaturas dentro de la aplicación [WordPress] habilitan a un atacante con los privilegios para cargar y modificar elementos de medios para obtener el control suficiente del parámetro utilizado en una llamada "file_exists" para provocar la deserialización", dijo el investigador.

Una vez que la miniatura creada se cargó en el servidor de WordPress seleccionado, el atacante puede usar otra función para llamar al mismo archivo de imagen que un archivo Phar utilizando el contenedor de flujo "phar://", y finalmente ejecuta el código arbitrario cuando el programa deserializa los metadatos.

"La vulnerabilidad existe debido a la deserialización insegura de los datos pasados como un archivo de imagen y luego ejecutados a través del contenedor de flujo 'phar://' dentro de la función 'wp_get_attachment_thumb_file' en el script '/wpincludes/post.php'", dice un aviso.

"Un atacante autenticado remotamente con la capacidad de crear/editar publicaciones puede cargar una imagen maliciosa y ejecutar código PHP arbitrario en un sistema vulnerable".

Thomas informó a principios del año pasado esta vulnerabilidad al equipo de seguridad de WordPress, y la compañía reconoció el problema. Sin embargo, el parche lanzado por la compañía no resolvió el problema por completo.

Thomas también informó la vulnerabilidad a Typo3 el 9 de junio de 2018, y el vendedor abordó el problema en las versiones 7.6.30, 8.7.17 y 9.3.

Para obtener más detalles sobre la vulnerabilidad, puedes dirigirse al artículo detallado [PDF] publicado por Secarma.

Jesus_Caceres