Fallo de deserialización en PHP pone en riesgo a millones de sitios web WordPress

El investigador en seguridad Sam Thomas, de la empresa Secarma, ha descubierto una nueva técnica que podrí­a hacer más fácil a los atacantes la explotación de vulnerabilidades de deserialización en PHP mediante la utilización de funciones que eran consideradas como de riesgo bajo.

PHP es uno de los lenguajes de programación más populares, siendo la tecnologí­a para el tratamiento de páginas web dinámicas desde el lado del servidor más utilizado del mundo. Además, muchos de los CMS más importantes lo utilizan, entre ellos WordPress, por lo que podrí­a haber millones de sitios web vulnerables ante esta nueva técnica descubierta.

La deserialización en PHP fue documentada inicialmente en 2009 y abre la puerta a que atacantes puedan llevar a cabo diferentes tipos de ataques mediante el suministro de entradas maliciosas a la función unserialize(), la cual es una caracterí­stica oficial y legí­tima de la implementación oficial del lenguaje que nos ocupa. Básicamente, la función seriar (serialize()) permite convertir los datos de los objetos en texto plano, mientras que deserializar (unserialize()) ayuda al programa a recrear el objeto a partir de la cadena en texto plano.

Sam Thomas ha descubierto que un atacante puede usar funciones de bajo riesgo contra archivos Phar (un formato de fichero en PHP que almacena los metadatos en un formato seriado que se deserializa cuando una función de operación de ficheros intenta acceder a él) para realizar de ataques de deserialización sin requerir la utilización de la función unserialize() en una gran variedad de escenarios.

Para explotar el fallo con éxito, el atacante solo tiene que subir al servidor objetivo un fichero para su conversión a un Phar válido que contenga una carga maliciosa en forma de objeto. Después se tiene que hacer que la función que opera con el archivo acceda utilizando el wrapper de transmisión «phar://» para ejecutar el código arbitrario cuando el programa deserializa los metadatos. Por ejemplo, el investigador ha conseguido explotarlo con una imagen JPEG, la cual pasó de un fichero Phar a una imagen JPEG válida al modificar sus 100 primeros bytes, algo que ha podido realizar a través de la funcionalidad de miniaturas de WordPress, que «habilita a un atacante con privilegios para cargar y modificar elementos multimedia y obtener el control suficiente del parámetro utilizado en una llamada ‘file_exists’ para causar una deserialización».

php-deserialization-attack.png


Sam Thomas ha reportado la vulnerabilidad al equipo de WordPress a principios del presente año, pero a dí­a de hoy todaví­a no hay un parche que neutralice al 100% la vulnerabilidad. También lo ha reportado a Typo3 el 9 de junio de 2018, aunque para este CMS sí­ hay un parche completo que ha llegado a las versiones 7.6.30, 8.7.17 y 9.3.

Fuente: blog.segu-info.com.ar

Compartir: