Zranitelnost ve firejail umožňující root přístup k systému

V nástroji pro izolaci aplikací Firejail byla identifikována chyba zabezpečení (CVE-2022-31214), která umožňuje místnímu uživateli získat oprávnění root v hostitelském systému. Ve veřejné doméně je k dispozici funkční exploit, testovaný v aktuálních verzích openSUSE, Debian, Arch, Gentoo a Fedora s nainstalovaným nástrojem firejail. Problém je opraven ve verzi Firejail 0.9.70. Jako řešení ochrany můžete v nastavení nastavit parametry „join no“ a „force-nonewprivs yes“ (/etc/firejail/firejail.config).

Firejail používá jmenné prostory, AppArmor a filtrování systémových volání (seccomp-bpf) v Linuxu pro izolaci, ale vyžaduje zvýšená oprávnění k nastavení izolovaného provádění, která získává navázáním na příznak utility suid root nebo spuštěním pomocí sudo. Chyba zabezpečení je způsobena chybou v logice možnosti „--join=“. ", určený pro připojení k již běžícímu izolovanému prostředí (obdoba příkazu login pro prostředí sandbox) s definicí prostředí v něm běžícím identifikátorem procesu. Během fáze předběžného resetování privilegií určí firejail oprávnění zadaného procesu a aplikuje je na nový proces, který je připojen k prostředí pomocí volby „-join“.

Před připojením zkontroluje, zda zadaný proces běží v prostředí firejail. Tato kontrola vyhodnocuje přítomnost souboru /run/firejail/mnt/join. Za účelem zneužití zranitelnosti může útočník simulovat fiktivní, neizolované prostředí Firejail pomocí jmenného prostoru připojení a poté se k němu připojit pomocí možnosti „--join“. Pokud nastavení neumožňují režim zákazu získávání dalších oprávnění v nových procesech (prctl NO_NEW_PRIVS), firejail připojí uživatele k fiktivnímu prostředí a pokusí se použít nastavení uživatelského jmenného prostoru procesu init (PID 1).

Výsledkem je, že proces připojený přes "firejail -join" skončí v původním jmenném prostoru ID uživatele s nezměněnými oprávněními, ale v jiném prostoru přípojných bodů, zcela řízených útočníkem. Útočník může také spouštět programy setuid-root v prostoru přípojných bodů, který vytvořil, což umožňuje například měnit nastavení /etc/sudoers nebo parametry PAM v jeho hierarchii souborů a spouštět příkazy s právy root pomocí sudo nebo su utility.

Zdroj: opennet.ru

Přidat komentář