CWP CentOS Web Panel – RCE preautenticación (CVE-2021-45467)
ANÁLISIS
El problema surge cuando dos de las páginas PHP no autenticadas utilizadas en la aplicación -"/user/login.php" y "/user/index.php"- no validan adecuadamente la ruta a un archivo de script [2].
Esto significa que para explotar la vulnerabilidad, todo lo que tiene que hacer un atacante es alterar la sentencia include, que se utiliza para incluir el contenido de un archivo PHP en otro archivo PHP, para inyectar código malicioso desde un recurso remoto y lograr la ejecución de código.
Mientras que la aplicación tenía protecciones para alertar de los esfuerzos para cambiar a un directorio padre (denotado por "..") como un "intento de hackeo", no hace nada para evitar que el intérprete de PHP acepte una cadena especialmente diseñada como ".$00." y logre efectivamente un bypass completo.
Esto no sólo permite a un actor malicioso acceder a puntos finales de la API restringidos, sino que puede ser utilizado junto con una vulnerabilidad de escritura de archivos arbitrarios (CVE-2021-45466) para obtener la ejecución remota de código completo en el servidor de la siguiente manera:
Enviar una carga útil de inclusión de archivos con bytes nulos para añadir una clave de API maliciosa
Utilizar la clave API para escribir en un archivo (CVE-2021-45466)
Usar el paso #1 para incluir el archivo en el que acabamos de escribir (CVE-2021-45467)
RECOMENDACIONES
La vulnerabilidad de inclusión de archivos CVE-2021-45467 fue parcheada [3], pero los investigadores de Octagon dijeron que todavía vieron cómo "algunos lograron revertir el parche y explotar algunos servidores [4]".