14 de enero de 2021

Según recientes investigaciones, grupos de hacking malicioso pueden aprovecharse de una vulnerabilidad en Zend Framework de deserialización para ejecutar código remoto en sitios PHP. Esta vulnerabilidad ha sido identificada como CVE-2021-3007. Además, esta falla también podría presentarse en algunas implementaciones de Laminas Project.

 

El especialista en ciberseguridad, Ling Yizhou, menciona en su reporte que Zend Framework 3.0.0 está siendo afectado por una vulnerabilidad. Esto podría conducir a un escenario de ejecución remota de código si el contenido es controlable, relacionado con el método __destruct de clase Zend\Http\Response\Stream en Stream.php.

 

Este tipo de fallas ocurren cuando los datos codificados que la aplicación recibe del usuario o sistema no se validan adecuadamente antes de que la aplicación realice la decodificación. Como consecuencia, puede acarrear a una condición de denegación de servicio (DoS) en la aplicación vulnerable.

 

¿Cómo funciona en Zend?

Para el caso puntual de Zend, la falla se origina del destructor de la clase Stream. En programación orientada a objetivos, los métodos de construcción y destrucción se llaman cuando se crea y destruye un nuevo objeto de clase. Cuando el objetivo cumple su propósito en el programa, el intérprete PGO llamará al destructor del objetivo. Posteriormente, seguirá otra secuencia de comandos para liberar memoria. Yizhou menciona que el método unlink (), llamado por el destructor Stream, esperará un nombre de archivo como parámetro, que es del tipo de datos de la cadena.

 

Si el objeto streamName fuese de un tipo diferente, al final de la ejecución aún se pasaría al destructor; este a su vez intentaría llamar al método __toString para obtener su valor equivalente a la cadena. Este método podría ser modificado fácilmente por el creador del objetivo.

 

Yizhou señala que __toString en la clase Gravator de Zend Framework había sido escrito por sus programadores de tal manera que es posible devolver valores sobre los que el atacante tiene el control directo, lo que deviene en la ejecución de código arbitrario. Si la clase Stream recibe un objeto Gravator donde se espera streamName, bajo ciertas circunstancias, un hacker malicioso podría ejecutar comandos arbitrarios dentro de aplicaciones PHP vulnerables creadas con Zend.

 

PHP opera en cerca del 80% de los sitios web activos, sin mencionar la popularidad de Zend Framework. Finalmente, se tiene como recomendación a los administradores de sistemas verificar a detalle sus aplicaciones web para prevenir la explotación del ciberataque.

 

Fuente: Noticias de Seguridad Informática

Para más información ingresar aquí.

Comentarios

Comentarios