Vulnérabilité dans firejail permettant d'obtenir un accès root au système

Une vulnérabilité (CVE-2022-31214) a été identifiée dans l'outil d'exécution isolée des applications Firejail, permettant à un utilisateur local d'obtenir des droits root sur le système principal. Un exploit fonctionnel est disponible publiquement, testé sur les versions actuelles d'openSUSE, Debian, Arch, Gentoo et Fedora avec l'outil Firejail installé. Le problème a été corrigé dans la version Firejail 0.9.70. Comme solution de contournement, il est possible de définir les paramètres « join no » et « force-nonewprivs yes » dans le fichier de configuration (/etc/firejail/firejail.config).

Firejail utilise le mécanisme des espaces de noms (namespaces), AppArmor et la filtration des appels système (seccomp-bpf) sous Linux pour l'isolation, mais nécessite des privilèges élevés pour configurer un exécution isolée, obtenus grâce à l'activation de l'outil SUID root ou à l'exécution via sudo. La vulnérabilité est causée par une erreur dans la logique de l'option « —join= », conçue pour se connecter à un environnement isolé déjà en cours d'exécution (similaire à la commande login pour un environnement sandbox) en identifiant l'environnement à partir de l'identifiant du processus en cours. Avant de réinitialiser les privilèges, Firejail détermine les privilèges du processus spécifié et les applique au nouveau processus se connectant à l'environnement via l'option « —join ».

Avant de se connecter, une vérification est effectuée pour s'assurer que le processus spécifié s'exécute dans l'environnement Firejail. Cette vérification évalue la présence du fichier /run/firejail/mnt/join. Pour exploiter la vulnérabilité, un attaquant peut simuler un environnement Firejail non isolé, en utilisant l'espace des points de montage (mount namespace), puis se connecter à celui-ci avec l'option « —join ». Si le mode d'interdiction d'obtention de privilèges supplémentaires dans les nouveaux processus (prctl NO_NEW_PRIVS) n'est pas activé dans les paramètres, Firejail connectera l'utilisateur à cet environnement fictif et tentera d'appliquer les paramètres d'espace de noms d'identifiants d'utilisateur (user namespace) du processus init (PID 1).

En fin de compte, le processus connecté via «firejail —join» se retrouvera dans l'espace de noms d'identifiants d'utilisateur d'origine pour l'utilisateur avec des privilèges inchangés, mais dans un autre espace de points de montage, entièrement contrôlé par l'attaquant. Cela signifie que l'attaquant peut exécuter des programmes setuid-root dans l'espace de points de montage qu'il a créé, ce qui permet, par exemple, de modifier les paramètres /etc/sudoers ou les paramètres PAM dans sa hiérarchie de fichiers et d'obtenir la possibilité d'exécuter des commandes avec les droits root à l'aide des utilitaires sudo ou su.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster