Vulnerabilidad en firejail que permite acceso root al sistema

Se ha identificado una vulnerabilidad (CVE-2022-31214) en la utilidad de aislamiento de aplicaciones Firejail que permite a un usuario local obtener privilegios de root en el sistema host. Hay un exploit funcional disponible en el dominio público, probado en las versiones actuales de openSUSE, Debian, Arch, Gentoo y Fedora con la utilidad firejail instalada. El problema se solucionó en la versión firejail 0.9.70. Como solución alternativa para la protección, puede configurar los parámetros "unirse no" y "force-nonewprivs sí" en la configuración (/etc/firejail/firejail.config).

Firejail utiliza espacios de nombres, AppArmor y filtrado de llamadas al sistema (seccomp-bpf) en Linux para el aislamiento, pero requiere privilegios elevados para configurar la ejecución aislada, que obtiene vinculando el indicador de utilidad suid root o ejecutando con sudo. La vulnerabilidad es causada por un error en la lógica de la opción “--join=". ", destinado a conectarse a un entorno aislado que ya se está ejecutando (análogo al comando de inicio de sesión para un entorno sandbox) con la definición del entorno mediante el identificador del proceso que se ejecuta en él. Durante la fase de restablecimiento previo a los privilegios, firejail determina los privilegios del proceso especificado y los aplica al nuevo proceso que está conectado al entorno mediante la opción "-join".

Antes de conectarse, se verifica si el proceso especificado se está ejecutando en el entorno de Firejail. Esta verificación evalúa la presencia del archivo /run/firejail/mnt/join. Para explotar la vulnerabilidad, un atacante puede simular un entorno de firejail ficticio y no aislado utilizando el espacio de nombres de montaje y luego conectarse a él mediante la opción “--join”. Si la configuración no habilita el modo de prohibir la adquisición de privilegios adicionales en nuevos procesos (prctl NO_NEW_PRIVS), firejail conectará al usuario a un entorno ficticio e intentará aplicar la configuración del espacio de nombres de usuario del proceso de inicio (PID 1).

Como resultado, el proceso conectado a través de "firejail -join" terminará en el espacio de nombres de ID de usuario original del usuario con privilegios sin cambios, pero en un espacio de punto de montaje diferente, completamente controlado por el atacante. Un atacante también puede ejecutar programas setuid-root en el espacio de punto de montaje que creó, lo que permite, por ejemplo, cambiar la configuración de /etc/sudoers o los parámetros PAM en su jerarquía de archivos y poder ejecutar comandos con derechos de root usando sudo o sus utilidades.

Fuente: opennet.ru

Añadir un comentario