Kwetsbaarheid in firejail die root-toegang tot het systeem mogelijk maakt

Er is een kwetsbaarheid (CVE-2022-31214) geïdentificeerd in het applicatie-isolatieprogramma Firejail waarmee een lokale gebruiker root-rechten op het hostsysteem kan verkrijgen. Er is een werkende exploit beschikbaar in het publieke domein, getest in de huidige releases van openSUSE, Debian, Arch, Gentoo en Fedora met het firejail-hulpprogramma geïnstalleerd. Het probleem is opgelost in de release van firejail 0.9.70. Als tijdelijke oplossing voor de bescherming kunt u de parameters “join no” en “force-nonewprivs yes” instellen in de instellingen (/etc/firejail/firejail.config).

Firejail gebruikt naamruimten, AppArmor en systeemoproepfiltering (seccomp-bpf) in Linux voor isolatie, maar vereist verhoogde bevoegdheden om geïsoleerde uitvoering in te stellen, die het verkrijgt door te binden aan de hulpprogrammavlag suid root of door sudo uit te voeren. Het beveiligingslek wordt veroorzaakt door een fout in de logica van de “--join=” optie. ", bedoeld om verbinding te maken met een reeds actieve geïsoleerde omgeving (analoog aan de login-opdracht voor een sandbox-omgeving) met de definitie van de omgeving door de proces-ID die daarin draait. Tijdens de pre-privilege reset-fase bepaalt firejail de rechten van het opgegeven proces en past deze toe op het nieuwe proces dat is verbonden met de omgeving met behulp van de “-join” optie.

Voordat er verbinding wordt gemaakt, wordt gecontroleerd of het opgegeven proces in de firejail-omgeving draait. Deze controle evalueert de aanwezigheid van het bestand /run/firejail/mnt/join. Om het beveiligingslek te misbruiken, kan een aanvaller een fictieve, niet-geïsoleerde firejail-omgeving simuleren met behulp van de mount-naamruimte, en er vervolgens verbinding mee maken met behulp van de optie “--join”. Als de instellingen de modus voor het verbieden van het verkrijgen van extra rechten in nieuwe processen (prctl NO_NEW_PRIVS) niet inschakelen, zal firejail de gebruiker verbinden met een dummy-omgeving en proberen de gebruikersnaamruimte-instellingen van het init-proces toe te passen (PID 1).

Als gevolg hiervan zal het proces dat is verbonden via "firejail -join" terechtkomen in de oorspronkelijke gebruikers-ID-naamruimte van de gebruiker met ongewijzigde rechten, maar in een andere mountpoint-ruimte, volledig gecontroleerd door de aanvaller. Een aanvaller kan ook setuid-root-programma's uitvoeren in de mountpoint-ruimte die hij heeft gemaakt, waardoor hij bijvoorbeeld de /etc/sudoers-instellingen of PAM-parameters in zijn bestandshiërarchie kan wijzigen en opdrachten met root-rechten kan uitvoeren met behulp van de sudo of su nutsbedrijven.

Bron: opennet.ru

Voeg een reactie