Ranljivost v firejail, ki vam omogoča pridobitev korenskega dostopa do sistema

V pripomočku za izolacijo aplikacije Firejail je bila ugotovljena ranljivost (CVE-2022-31214), ki lokalnemu uporabniku omogoča pridobitev korenskih pravic v gostiteljskem sistemu. V javni domeni je na voljo delujoče izkoriščanje, preizkušeno v trenutnih izdajah openSUSE, Debian, Arch, Gentoo in Fedora z nameščenim pripomočkom firejail. Težava je odpravljena v izdaji firejail 0.9.70. Kot rešitev za zaščito lahko nastavite parametra »join no« in »force-nonewprivs yes« v nastavitvah (/etc/firejail/firejail.config).

Firejail uporablja imenske prostore, AppArmor in filtriranje sistemskih klicev (seccomp-bpf) v Linuxu za izolacijo, vendar zahteva povišane privilegije za nastavitev izoliranega izvajanja, ki jih pridobi z vezavo na zastavo pripomočka suid root ali izvajanjem s sudo. Ranljivost je posledica napake v logiki opcije “--join=”, namenjene povezovanju z že delujočim izoliranim okoljem (analogno ukazu za prijavo v okolju peskovnika), pri čemer okolje določa v njem teče ID procesa. Med fazo pred ponastavitvijo privilegijev firejail določi privilegije podanega procesa in jih uporabi za nov proces, ki je povezan z okoljem z možnostjo »-join«.

Pred vzpostavitvijo povezave preveri, ali se navedeni proces izvaja v okolju firejail. To preverjanje oceni prisotnost datoteke /run/firejail/mnt/join. Da bi izkoristil ranljivost, lahko napadalec simulira fiktivno, neizolirano okolje požarnega zapora z uporabo imenskega prostora mount in se nato poveže z njim z možnostjo »--join«. Če nastavitve ne omogočajo načina prepovedi pridobivanja dodatnih privilegijev v novih procesih (prctl NO_NEW_PRIVS), bo firejail uporabnika povezal z navideznim okoljem in poskušal uporabiti nastavitve uporabniškega imenskega prostora zagonskega procesa (PID 1).

Posledično bo proces, povezan prek »firejail -join«, končal v uporabnikovem prvotnem imenskem prostoru ID-ja uporabnika z nespremenjenimi privilegiji, vendar v drugem prostoru točke priklopa, ki ga popolnoma nadzoruje napadalec. Napadalec lahko izvaja tudi programe setuid-root v prostoru točke priklopa, ki ga je ustvaril, kar omogoča na primer spreminjanje nastavitev /etc/sudoers ali parametrov PAM v njegovi hierarhiji datotek in izvajanje ukazov s korenskimi pravicami z uporabo sudo ali su pripomočki.

Vir: opennet.ru

Dodaj komentar