Vulnerabilidad en firejail que permite obtener acceso root en el sistema.

Se ha descubierto una vulnerabilidad (CVE-2022-31214) en la herramienta Firejail para la ejecución aislada de aplicaciones, que permite a un usuario local obtener privilegios de root en el sistema principal. Hay un exploit funcional disponible públicamente, probado en las versiones actuales de openSUSE, Debian, Arch, Gentoo y Fedora con la herramienta firejail instalada. El problema se ha solucionado en la versión firejail 0.9.70. Como solución alternativa, se pueden configurar los parámetros "join no" y "force-nonewprivs yes" en el archivo de configuración (/etc/firejail/firejail.config).

Firejail utiliza el mecanismo de espacios de nombres (namespaces), AppArmor y filtrado de llamadas al sistema (seccomp-bpf) en Linux para la aislamiento, pero requiere privilegios elevados para configurar el lanzamiento aislado, que obtiene a través de la vinculación a la herramienta con el flag suid root o mediante el uso de sudo. La vulnerabilidad es causada por un error en la lógica del opción "--join=", diseñada para conectarse a un entorno aislado ya en funcionamiento (similar al comando login para entornos sandbox) al determinar el entorno por el identificador de proceso que se está ejecutando. En la etapa anterior a la eliminación de privilegios, firejail determina los privilegios del proceso especificado y los aplica al nuevo proceso que se conecta al entorno mediante la opción "--join".

Antes de la conexión, se realiza una verificación para determinar si el proceso especificado se está ejecutando en un entorno firejail. Esta verificación evalúa la existencia del archivo /run/firejail/mnt/join. Para explotar la vulnerabilidad, un atacante puede simular un entorno firejail no aislado ficticio utilizando el espacio de nombres de montajes (mount namespace), y luego conectarse a él mediante la opción "--join". Si en la configuración no está activado el modo de prohibición de obtención de privilegios adicionales en los nuevos procesos (prctl NO_NEW_PRIVS), firejail conectará al usuario con el entorno ficticio y tratará de aplicar la configuración del espacio de nombres de identificadores de usuarios (user namespace) del proceso init (PID 1).

Como resultado, el proceso conectado a través de "firejail --join" se encontrará en el espacio de nombres de identificadores de usuario original del usuario con privilegios inalterados, pero en otro espacio de puntos de montaje, completamente controlado por el atacante. Esto incluye que el atacante puede ejecutar programas setuid-root en el espacio de puntos de montaje que ha creado, lo que permite, por ejemplo, modificar la configuración de /etc/sudoers o los parámetros de PAM en su jerarquía de archivos y obtener la capacidad de ejecutar comandos con privilegios de root mediante las utilidades sudo o su.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster