Vulnerabilidad de riesgo alto en Concrete5 permitiría a un atacante ejecutar código

Concrete5 es un sistema de gestión de contenidos (CMS, por sus siglas en inglés) de código libre, y permite a usuarios con un mínimo conocimiento técnico editar el contenido de un sitio web directamente desde la página.

¿Qué pasó?

Recientemente ha sido abordada una vulnerabilidad de alto riesgo, la cual afecta a Concrete5 en versiones anteriores a 8.5.3, la misma ha sido identificada con el CVE-2020-11476.

El fallo se da debido a una falta de restricción durante la carga de ciertos tipos de archivos, específicamente los archivos del tipo: phar, php8, shtml, cgi, pl, phpsh, pht y .htaccess; los cuales no se encuentran en la «lista negra”.

Con esto en cuenta, un atacante autenticado podría agregar el tipo de archivo .phara la sección de archivos permitidos «Allowed File Types” ubicada en la ruta «dashboard/system/files/filetypes”. Este archivo cargado, podría ser interpretado en ciertos servidores web como código PHP y permitir al atacante ejecutar código en el sistema afectado.

Prueba de concepto (PoC)

Primeramente es necesario visitar la sección de «Allowed File Types” desde la URL «http://localhost/index.php/dashboard/system/files/filetype” y agregar la extensión de archivo .phara las extensiones permitidas.

Una vez hecho esto, se debe crear el archivo shell.phar con el siguiente contenido:

codigoPHP.png

Luego, dirigirse a la dirección «http://localhost/concrete5/index.php/dashboard/files/search”, la cual permite cargar archivos nuevos y visualizar información de archivos ya cargados. Allí, realizar la carga del archivo shell.phar creado, y visualizar la ruta donde fue almacenado el archivo, utilizando la característica «Properties” disponible al hacer clic derecho sobre el archivo de interés.

Una vez se visualice la ruta del archivo, el atacante podría visitar dicha URL y ejecutar comandos en el sistema. Un ejemplo válido podría ser la siguiente URL «http://localhost/application/files/4015/8558/7320/shell.phar?cmd=whoami, el cual ejecutaría el comando whoami (comando que permite visualizar el usuario quien lo ejecuta) en el sistema.

Fuente: HerolabRecomendaciones:

Aplicar el parche de seguridad para Concrete5, disponible en la versión 8.5.3.

Referencias:

Compartir: