Luka w zabezpieczeniach Firejail umożliwiająca dostęp administratora do systemu

W narzędziu do izolacji aplikacji Firejail zidentyfikowano lukę (CVE-2022-31214), która umożliwia użytkownikowi lokalnemu uzyskanie uprawnień roota w systemie hosta. W domenie publicznej dostępny jest działający exploit, przetestowany w bieżących wydaniach openSUSE, Debian, Arch, Gentoo i Fedora z zainstalowanym narzędziem Firejail. Problem został rozwiązany w wersji Firejail 0.9.70. Aby obejść ochronę, możesz ustawić parametry „dołącz nie” i „force-nonewprivs tak” w ustawieniach (/etc/firejail/firejail.config).

Firejail używa przestrzeni nazw, AppArmor i filtrowania wywołań systemowych (seccomp-bpf) w systemie Linux do izolacji, ale wymaga podwyższonych uprawnień do skonfigurowania izolowanego wykonywania, które uzyskuje poprzez powiązanie z flagą narzędzia suid root lub działanie z sudo. Luka wynika z błędu w logice opcji „--join=”. ", przeznaczony do połączenia się z już działającym izolowanym środowiskiem (analogicznie do komendy login dla środowiska sandbox) z definicją środowiska poprzez identyfikator procesu w nim działającego. Podczas fazy resetowania uprawnień przed zresetowaniem Firejail określa uprawnienia określonego procesu i stosuje je do nowego procesu, który jest podłączony do środowiska za pomocą opcji „-join”.

Przed połączeniem sprawdza, czy określony proces działa w środowisku Firejail. To sprawdzenie ocenia obecność pliku /run/firejail/mnt/join. Aby wykorzystać tę lukę, osoba atakująca może symulować fikcyjne, nieizolowane środowisko Firejail przy użyciu przestrzeni nazw montowania, a następnie połączyć się z nim za pomocą opcji „--join”. Jeśli w ustawieniach nie włączono trybu uniemożliwiającego nabywanie dodatkowych uprawnień w nowych procesach (prctl NO_NEW_PRIVS), Firejail połączy użytkownika z fikcyjnym środowiskiem i spróbuje zastosować ustawienia przestrzeni nazw użytkownika procesu inicjującego (PID 1).

W rezultacie proces połączony za pośrednictwem „firejail –join” zakończy się w oryginalnej przestrzeni nazw identyfikatora użytkownika użytkownika z niezmienionymi uprawnieniami, ale w innej przestrzeni punktów podłączenia, całkowicie kontrolowanej przez osobę atakującą. Osoba atakująca może również uruchamiać programy setuid-root w utworzonej przez siebie przestrzeni punktów podłączenia, co pozwala na przykład na zmianę ustawień /etc/sudoers lub parametrów PAM w jego hierarchii plików i umożliwia wykonywanie poleceń z uprawnieniami roota za pomocą sudo lub su narzędzia.

Źródło: opennet.ru

Dodaj komentarz