Dos vulnerabilidades críticas en Concrete CMS afectan a más de 62,000 sitios web

Especialistas en ciberseguridad reportan la detección de diversas vulnerabilidades en Concrete CMS, un popular sistema de gestión de contenido (CMS) de código abierto. Según el reporte de Fortbridge, la explotación de dos condiciones de carrera, en conjunto con el uso inseguro de la función uniqid(), permitiría a los actores de amenazas realizar ataques de ejecución remota de código (RCE) contra los sistemas afectados.

Acorde al investigador Adrian Tiron, la función uniqid() no es segura a nivel criptográfico, pues devuelve un número pseudoaleatorio que permite adivinar el nombre de un directorio pseudoaleatorio y así cargar un shell web en el servidor comprometido. Actualmente hay más de 62,000 sitios web que operan con Concrete CMS, por lo que el ataque tiene una extensión considerable.

La primera de las fallas reportadas fue descrita como una condición de carrera en la función de carga de archivos que permite a un usuario del CMS cargar archivos desde un servidor remoto. Los archivos se descargan en “$temporaryDirectory”, una clase llamada VolatileDirectory que crea un directorio temporal, eliminado al final de cada solicitud.

El nombre del directorio creado siempre será aleatorio, por lo que para adivinar el nombre, es necesario forzar este directorio para encontrar su origen. Esto puede ser llevado a cabo con un ataque de fuerza bruta, aunque el tiempo que toma este ataque es un factor considerable.

Mientras buscaban evadir el tiempo de espera de cURL de 60 segundos, recurrieron a la función uniqid(), que devolvió la hora y el día al microsegundo: “Agregaremos un sleep() durante 30-60 segundos en el archivo test.php que se descarga desde el servidor remoto”, mencionan los investigadores.

Una vez que tuvieron el nombre del directorio, los investigadores pudieron solicitar test.php, que escribe un shell permanente en el directorio principal. Al hacer que test.php se ejecute durante unos 30 segundos para adivinar el nombre del directorio, se creó una segunda condición de carrera, lo que significa que test.php se escribirá en el sistema de archivos CMS, llevando a la ejecución de código remoto.

Para conocer más sobre riesgos de seguridad informática, malware, vulnerabilidades y tecnologías de la información, no dude en ingresar al sitio web del Instituto Internacional de Seguridad Cibernética (IICS).