lunes, 18 de diciembre de 2017

Vulnerabilidades en vBulletin 5

Se han hecho públicos dos problemas de seguridad que afectan a vBulletin y que permitirían incluir y eliminar ficheros arbitrarios y, potencialmente, ejecutar código remoto.


vBulletin es un software desarrollado por vBulletin Solutions, para la creación y mantenimiento de foros en Internet. Está basado en PHP y MySQL y según la propia compañía más de 100.000 sitios funcionan bajo este sistema, incluyendo compañías como Electronic Arts, Sony, NASA o Steam.

Investigadores de Truel IT han hecho públicos dos vulnerabilidades que afectan a vBulletin. El primero de los fallos de seguridad se debe a una falta de comprobación en la función 'cacheTemplates()' localizada en 'core/vb/library/template.php', donde la variable '$temnplateidlist' podría proceder directamente de la entrada del usuario y es usada sin comprobar. Aprovechando este error, un atacante remoto no autenticado podría eliminar ficheros arbitrarios del servidor.

Se propone la siguiente petición POST como prueba de concepto:

Petición POST para PoC#1

La segunda vulnerabilidad se encuentra en el parámetro 'routestring' en 'index.php' y podría permitir la inclusión de archivos en el servidor vBulletin y la ejecución de código PHP arbitrario. Esta vulnerabilidad tiene la limitación de no poder utilizar rutas que terminen con '.gif', '.png', '.jpg', '.css' o '.js' ni usar el carácter '/'. Esto último en servidores GNU/Linux imposibilita cambiar de carpeta, pero no así si vBulletin corre bajo sistemas operativos Microsoft Windows.

Si el servidor es vulnerable a este segundo error, una petición a '/index.php?routestring=.\\' obtendrá una respuesta como en la imagen siguiente:

Mensaje de error de servidor vulnerable

La inyección de código PHP se podría realizar mediante el fichero 'access.log', como muestra el ejemplo:


Petición para PoC#2

Para posteriormente realizar una petición a '/index.php?routestring=\\..\\..\\..\\path\\to\\logs\\access.log' con el resultado de la ejecución de la llamada a la función 'phpinfo', que había sido inyectada:


Resultado PoC#2

Desde el pasado 21 de Noviembre los investigadores que han descubierto estos errores han intentado comunicarse con vBulletin Solutions con resultados infructuosos, por lo que estas vulnerabilidades no se encuentran corregidas aun.


Juan José Ruiz

Más información:

vBulletin routestring Unauthenticated Remote Code Execution
https://blogs.securiteam.com/index.php/archives/3569

vBulletin cacheTemplates Unauthenticated Remote Arbitrary File Deletion