Vulnerability in firejail that allows obtaining root access in the system.

W narzędziu do izolowanego uruchamiania aplikacji Firejail wykryto lukę (CVE-2022-31214), która pozwala lokalnemu użytkownikowi uzyskać uprawnienia roota w głównym systemie. W internecie dostępny jest działający exploit, przetestowany w najnowszych wersjach openSUSE, Debiana, Archa, Gentoo i Fedory z zainstalowanym narzędziem firejail. Problem został rozwiązany w wersji firejail 0.9.70. Jako tymczasowe rozwiązanie można w ustawieniach (/etc/firejail/firejail.config) ustawić parametry „join no” i „force-nonewprivs yes”.

Firejail wykorzystuje do izolacji mechanizm przestrzeni nazw (namespaces), AppArmor i filtrowanie wywołań systemowych (seccomp-bpf) w Linuksie, ale do skonfigurowania izolowanego uruchomienia wymaga podwyższonych uprawnień, które uzyskuje poprzez powiązanie z flagą suid root lub uruchomienie za pomocą sudo. Luka została spowodowana błędem w logice działania opcji „—join=”, przeznaczonej do podłączenia do już działającego izolowanego środowiska (podobnie jak komenda login dla środowiska sandbox) z identyfikacją środowiska na podstawie działającego w nim identyfikatora procesu. Na etapie przed zresetowaniem uprawnień firejail określa uprawnienia wskazanego procesu i stosuje je do nowego procesu, który łączy się z środowiskiem za pomocą opcji „—join”.

Przed podłączeniem sprawdzane jest, czy wskazany proces działa w środowisku firejail. Ta weryfikacja ocenia obecność pliku /run/firejail/mnt/join. Aby wykorzystać lukę, atakujący może zasymulować fikcyjne, nieizolowane środowisko firejail, wykorzystując przestrzeń nazw montowania (mount namespace), po czym podłączyć się do niego za pomocą opcji „—join”. Jeśli w ustawieniach nie jest aktywowany tryb zakazu uzyskiwania dodatkowych uprawnień w nowych procesach (prctl NO_NEW_PRIVS), firejail połączy użytkownika z fikcyjnym środowiskiem i spróbuje zastosować ustawienia przestrzeni nazw identyfikatorów użytkowników (user namespace) procesu init (PID 1).

W rezultacie proces połączony przez „firejail —join” znajdzie się w początkowej przestrzeni nazw identyfikatorów użytkowników z niezmienionymi uprawnieniami, ale w innej przestrzeni punktów montowania, w pełni kontrolowanej przez atakującego. W tym przypadku atakujący może uruchamiać programy setuid-root w utworzonej przez siebie przestrzeni punktów montowania, co umożliwia na przykład zmianę ustawień /etc/sudoers lub parametrów PAM w swojej hierarchii plików oraz uzyskanie możliwości wykonywania poleceń z uprawnieniami root za pomocą narzędzi sudo lub su.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster