In de tool voor het geĆÆsoleerd uitvoeren van applicaties Firejail is een kwetsbaarheid ontdekt (CVE-2022-31214) die een lokale gebruiker in staat stelt rootrechten op het hoofdysteem te verkrijgen. Er is een werkende exploit beschikbaar die is getest op recente versies van openSUSE, Debian, Arch, Gentoo en Fedora met de geĆÆnstalleerde tool firejail. Het probleem is opgelost in versie firejail 0.9.70. Als tijdelijke oplossing kan in de instellingen (/etc/firejail/firejail.config) de optie "join no" en "force-nonewprivs yes" worden ingesteld.
Firejail maakt gebruik van het mechanisme van namespaces, AppArmor en filtering van systeemaanroepen (seccomp-bpf) in Linux voor isolatie, maar vereist verhoogde privileges voor het configureren van geĆÆsoleerd draaien, die het verkrijgt via de suid root-vlag of door middel van sudo. De kwetsbaarheid is ontstaan door een fout in de logica van de optie "ājoin=", bedoeld om verbinding te maken met een reeds draaiende geĆÆsoleerde omgeving (vergelijkbaar met de login-opdracht voor een sandbox-omgeving) waarbij de omgeving wordt geĆÆdentificeerd door de proces-id die daarin draait. In de fase vóór het intrekken van privileges bepaalt firejail de privileges van het opgegeven proces en past deze toe op het nieuwe proces dat verbinding maakt met de omgeving via de optie "ājoin".
Voordat verbinding wordt gemaakt, wordt gecontroleerd of het opgegeven proces draait in de firejail-omgeving. Deze controle beoordeelt de aanwezigheid van het bestand /run/firejail/mnt/join. Om de kwetsbaarheid te benutten, kan de aanvaller een valse niet-geĆÆsoleerde firejail-omgeving simuleren met behulp van een mount namespace, waarna hij verbinding kan maken via de optie "ājoin". Als in de instellingen de modus voor het verbieden van het verkrijgen van extra privileges in nieuwe processen (prctl NO_NEW_PRIVS) niet is ingeschakeld, zal firejail de gebruiker verbinden met de valse omgeving en proberen de namespace-instellingen van gebruikers-id (user namespace) van het init-proces (PID 1) toe te passen.
Als gevolg hiervan zal het proces dat via "firejail --join" is aangesloten, zich in de oorspronkelijke naamruimte van gebruikers-id's bevinden met onveranderde privileges, maar in een andere montagepuntnaamruimte die volledig onder controle van de aanvaller staat. De aanvaller kan setuid-root programma's uitvoeren in de door hem gemaakte montagepuntnaamruimte, waardoor het bijvoorbeeld mogelijk wordt om de instellingen in /etc/sudoers of PAM-parameters in zijn bestandshierarchie te wijzigen en de mogelijkheid te krijgen om commando's met root-rechten uit te voeren met behulp van de sudo- of su-hulpmiddelen.
Bron: opennet.ru
