Detectaron vulnerabilidades en la interfaz web de dispositivos con JunOS
Hace pocos días se dio a conocer información sobre varias vulnerabilidades identificadas en la interfaz web «J-Web», que se utiliza en dispositivos de red Juniper equipados con el sistema operativo JunOS.
La más peligrosa es la vulnerabilidad CVE-2022-22241, de las cuales esta en especial permite ejecutar de forma remota código en el sistema sin autenticación mediante el envío de una solicitud HTTP especialmente diseñada.
La esencia de la vulnerabilidad es que la ruta del archivo que pasa el usuario se procesa en el script /jsdm/ajax/logging_browse.php sin filtrar el prefijo con el tipo de contenido en la etapa anterior a la verificación de autenticación.
Un atacante puede transferir un archivo phar malicioso bajo la apariencia de una imagen y lograr la ejecución del código PHP colocado en el archivo phar usando el método de ataque «Deserialización de Phar».
El problema es que al verificar un archivo cargado con la función is_dir() de PHP, esta función deserializa automáticamente los metadatos del Archivo Phar (Archivo PHP) al procesar rutas que comienzan con «phar://». Se observa un efecto similar cuando se procesan rutas de archivo proporcionadas por el usuario en las funciones file_get_contents(), fopen(), file(), file_exists(), md5_file(), filemtime() y tamaño de archivo().
El ataque se complica por el hecho de que, además de iniciar la ejecución del archivo phar, el atacante debe encontrar una manera de descargarlo en el dispositivo (al acceder a /jsdm/ajax/logging_browse.php, solo puede especificar la ruta para ejecutar un archivo existente).
De los posibles escenarios para que los archivos lleguen al dispositivo, se menciona la carga de un archivo phar bajo la apariencia de una imagen a través de un servicio de transferencia de imágenes y la sustitución del archivo en la memoria caché de contenido web.
Otra de las vulnerabilidades detectadas es CVE-2022-22242, esta vulnerabilidad puede ser aprovechada por un atacante remoto no autenticado para robar sesiones de administración de JunOS o usarse en combinación con otras vulnerabilidades que requieren autenticación. Por ejemplo, esta vulnerabilidad se puede usar junto con el error de escritura del archivo posterior a la autenticación que forma parte del informe.
CVE-2022-22242 permite la sustitución de parámetros externos sin filtrar en la salida del script error.php, que permite realizar secuencias de comandos entre sitios y ejecutar código JavaScript arbitrario en el navegador del usuario al hacer clic en el enlace. La vulnerabilidad podría usarse para interceptar los parámetros de la sesión del administrador si los atacantes logran que el administrador abra un enlace especialmente diseñado.
Por otra parte, tambien se mencionan las vulnerabilidades CVE-2022-22243 que puede ser aprovechada por un atacante remoto autenticado para manipular las sesiones de administración de JunOS o manipular el flujo XPATH que el servidor usa para hablar con sus analizadores XML y tambien СVE-2022-22244 que de igual forma puede ser aprovechada por un atacante remoto autenticado para manipular las sesiones de administración de JunOS. En ambas la sustitución de la expresión XPATH a través de los scripts jsdm/ajax/wizards/setup/setup.php y /modules/monitor/interfaces/interface.php permite que un usuario autenticado sin privilegios manipule las sesiones del administrador.
Otras vulnerabilidades dadas a conocer son:
- CVE-2022-22245: si no se limpia correctamente la secuencia «..» en las rutas procesadas en el script Upload.php, un usuario autenticado puede cargar su archivo PHP en un directorio que permite la ejecución de scripts PHP (por ejemplo, mediante pasando la ruta «fileName=\. .\..\..\..\www\dir\new\shell.php»).
- CVE-2022-22246: capacidad para ejecutar un archivo PHP local arbitrario mediante la manipulación por parte de un usuario autenticado con el script jrest.php, en el que se usan parámetros externos para formar el nombre del archivo cargado por la función «require_once()» (por ejemplo , «/jrest.php?payload =alol/lol/any\..\..\..\..\any\file»).Esto permite que un atacante incluya cualquier archivo PHP almacenado en el servidor. Si esta vulnerabilidad se explota junto con la vulnerabilidad de carga de archivos, puede conducir a la ejecución remota de código.
Finalmente se recomienda a los usuarios de equipos Juniper que instalen una actualización de firmware y, si esto no es posible, asegúrese de que el acceso a la interfaz web esté bloqueado desde redes externas y limitado solo a hosts de confianza.
Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.