Estas vulnerabilidades de CWP permiten la ejecución de código como root en servidores Linux
Investigadores han descubierto dos vulnerabilidades críticas en Control Web Panel (CWP), un popular software de administración de alojamiento web utilizado por más de 200, 000 servidores. Estas podrían permitir la ejecución remota de código (RCE) como root en servidores Linux vulnerables.
CWP, anteriormente conocido como CentOS Web Panel, es un software de panel de control de Linux de código abierto. Este software es ampliamente utilizado para crear y administrar entornos de alojamiento web. El software es compatible con los sistemas operativos CentOS, Rocky Linux, Alma Linux y Oracle Linux.
Las dos vulnerabilidades fueron encontradas por Paulos Yibelo de Octagon Networks. Estas han sido identificadas como CVE-2021-45467 (una vulnerabilidad de inclusión de archivos) y CVE-2021-45466 (una vulnerabilidad de escritura de archivos). Cuando están encadenadas, las dos vulnerabilidades pueden conducir a RCE.
Explotable sin autenticación
Los problemas se encuentran en partes del panel CWP que están expuestas sin autenticación en webroot, según el informe de Octagon.
Según los investigadores, “ no hay mucho expuesto”, pero encontraron algunas cosas muy interesantes. Específicamente, las dos páginas en las que se centró Octagon son /user/loader.php
y /user/index.php
, que tienen el siguiente método de protección de inclusión de archivos (/user/loader.php
):
Que es un método que define GETSecurity() como el siguiente:
Para explotar la vulnerabilidad e inyectar código malicioso desde un recurso remoto, un atacante simplemente necesitaría modificar la declaración de inclusión. Esta se usa para insertar el contenido de un archivo PHP en otro archivo PHP antes de que el servidor lo ejecute.
Para hacerlo, es necesario evadir las protecciones de seguridad para evitar que los atacantes lleguen a la sección de API restringida sin autenticación. Esta es una hazaña que se puede lograr registrando una clave de API mediante la vulnerabilidad de inclusión de archivos y creando un archivo malintencionado de claves autorizadas en el servidor mediante la vulnerabilidad de escritura de archivos.
No es que CWP careciera de protecciones en los parámetros para cambiar a un directorio principal. Si una secuencia de comandos de parámetros contiene “..”, como dos puntos, la aplicación lo marca como un “intento de hacking” y se abstiene de procesar la entrada.
Pero esa protección no impidió que el intérprete de PHP aceptara una cadena especialmente diseñada y lograra efectivamente una omisión completa. Esto se logra al engañar a PHP “haciéndole creer que no hay puntos consecutivos (…)”, explicaron los investigadores.