Odkrili so ranljivost v firejail, ki je omogočala root dostop do sistema

Pred kratkim so objavili novico, da je bila ugotovljena ranljivost (že naveden pod CVE-2022-31214) v orodju za peskovnik aplikacije Firejail, je podrobno opisano, da bi lahko zaznana napaka lokalnemu uporabniku omogočila, da postane root na gostiteljskem sistemu.

Firejail uporablja mehanizem imenskih prostorov, AppArmor in filtriranje sistemskih klicev (seccomp-bpf) v Linuxu za izolacijo, vendar zahteva povišane privilegije za konfiguracijo izolirane izdaje, ki jo pridobi tako, da se poveže s pripomočkom za korensko zastavo suid ali zažene s sudo.

Ranljivost je posledica napake v logiki možnosti “–join=”. », zasnovan za povezavo z izoliranim okoljem, ki se že izvaja (podobno kot ukaz za prijavo za okolje peskovnika) z okoljem, opredeljenim z ID-jem procesa, ki se izvaja v njem. V fazi pred zagonom firejail zazna privilegije določenega procesa in jih uporabi za nov proces, ki se pridruži okolju z možnostjo “–join”.

Preden se povežete, preveri, ali se navedeni proces izvaja v okolju firejail. To preverjanje oceni obstoj datoteke /run/firejail/mnt/join. Da bi izkoristili ranljivost, napadalec lahko simulira fiktivno neizolirano okolje požarnega zapora uporabite imenski prostor mount in se nato povežete z njim z možnostjo "--join".

Če konfiguracija ne omogoča načina prepovedi pridobivanja dodatnih privilegijev v novih procesih (prctl NO_NEW_PRIVS), bo firejail uporabnika povezal z izmišljenim okoljem in poskušal uporabiti konfiguracijo uporabniškega imenskega prostora identifikatorjev uporabnikov (uporabnik imenskega prostora) začetnega procesa ( PID 1).

Večina logike funkcije pridružitve je v izvorni kodi iz datoteke `src/firejail/join.c`. Kritični deli kode se izvajajo z povišani privilegiji (dejanski UID 0). ID procesa je bil posredovan kot ukaz argument vrstice se pregleda, da ugotovi, ali je rvsebnik in določi nekatere njegove lastnosti, ki Velja tudi za nov vstopni postopek.

Glavna merila za odločitev, ali se pridružite ciljnemu procesu uspe je prisotnost datoteke v imenskem prostoru mount cilja, proces najdemo v /run/firejail/mnt/join. To preverjanje se opravi na ffunkcija `is_ready_for_join()`. Datoteka se odpre z lZastavice `O_RDONLY|O_CLOEXEC` in rezultat sledenja `fstat()` naj izpolnjujejo naslednje zahteve:

– datoteka mora biti običajna datoteka.
– datoteka mora biti last uporabnika 0 (kot je razvidno iz prvotnega uporabnika
imenski prostor).
– datoteka mora biti velika 1 bajt.

Kot rezultat, proces, povezan prek "firejail --join", bo končal v imenskem prostoru izvirni uporabniški ID uporabnika z nespremenjenimi privilegiji, vendar v drugem prostoru točke montaže, ki ga popolnoma nadzoruje napadalec.

Nastala "pridružena" lupina bo zdaj živela pri začetnem uporabniku
imenski prostor, vendar še vedno ohranja prvotne običajne uporabniške privilegije imenski prostor mount bo tisti, ki ga nadzoruje napadalec. Kot
konfiguracija nonewprivs ni bila uporabljena, napadalec lahko zdaj
zaženite korenske programe setuid znotraj tega imenskega prostora za priklop

Zlasti lahko napadalec zažene korenske programe setuid v prostoru točke priklopa, ki ga je ustvaril, kar mu omogoča, da na primer spremeni konfiguracijo /etc/sudoers ali parametre PAM v svoji hierarhiji datotek in pridobi možnost izvajanja ukazov kot root z uporabo sudo ali njegovih pripomočkov.

Na koncu velja omeniti, da je bil razvit funkcionalni izkoriščanje, ki je bil preizkušen na trenutnih različicah openSUSE, Debian, Arch, Gentoo in Fedora z nameščenim pripomočkom firejail.

Težava je bila odpravljena v firejail različici 0.9.70. Kot varnostni popravek lahko nastavite konfiguracijo (/etc/firejail/firejail.config) na "no join" in "force-nonewprivs yes".

Končno če vas zanima več o tem, podrobnosti lahko preverite v naslednja povezava.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.