Otkrili su ranjivost u firejail-u koja je omogućila root pristup sistemu

Nedavno su objavili vijest da identifikovana je ranjivost (već naveden pod CVE-2022-31214) u Firejail app sandboxing alatu, detaljno je navedeno da bi otkriveni nedostatak mogao omogućiti lokalnom korisniku da postane root na host sistemu.

Firejail koristi mehanizam imenskih prostora, AppArmor i filtriranje sistemskih poziva (seccomp-bpf) u Linuxu za izolaciju, ali zahtijeva povišene privilegije da bi konfigurirao izolirano izdanje, koje dobiva povezivanjem sa uslužnim programom suid root zastavice ili pokretanjem sa sudo.

Ranjivost je nastala zbog greške u logici opcije “–join=”. », dizajniran za povezivanje sa izolovanim okruženjem koje je već pokrenuto (slično naredbi za prijavu za okruženje sandbox) sa okruženjem definisanim ID-om procesa koji se u njemu izvodi. U fazi prije pokretanja, firejail detektuje privilegije navedenog procesa i primjenjuje ih na novi proces koji se pridružuje okruženju pomoću opcije “–join”.

Prije povezivanja, provjerava da li se navedeni proces izvodi u firejail okruženju. Ova provjera procjenjuje postojanje /run/firejail/mnt/join datoteke. Da bi se iskoristila ranjivost, napadač može simulirati fiktivno neizolovano okruženje vatrogasnog zatvora koristeći prostor imena mount, a zatim se povezujete na njega pomoću opcije “–join”.

Ako konfiguracija ne omogući način zabrane dobijanja dodatnih privilegija u novim procesima (prctl NO_NEW_PRIVS), firejail će povezati korisnika sa fiktivnim okruženjem i pokušati primijeniti konfiguraciju korisničkog imenskog prostora korisničkih identifikatora (korisnika prostora imena) init procesa ( PID 1).

Većina logike iza funkcije pridruživanja nalazi se u izvornom kodu iz datoteke `src/firejail/join.c`. Kritični dijelovi koda se izvršavaju sa povišene privilegije (efikasni UID 0). ID procesa proslijeđen kao naredba argument linije se provjerava kako bi se utvrdilo da li je rkontejnera i odrediti neka njegova svojstva koja To se također odnosi na novi proces ulaska.

Glavni kriteriji za odlučivanje da li se pridružiti ciljnom procesu uspješno je prisustvo datoteke u imenskom prostoru mount cilja, proces pronađen u /run/firejail/mnt/join. Ova verifikacija se vrši na ffunkcija `is_ready_for_join()`. Datoteka se otvara pomoću lZastavice `O_RDONLY|O_CLOEXEC` i rezultat praćenja `fstat()` bi trebali ispuniti sljedeće zahtjeve:

– datoteka mora biti normalna datoteka.
– datoteka mora biti vlasništvo korisnika ID 0 (kao što se vidi od početnog korisnika
imenski prostor).
– datoteka mora biti veličine 1 bajt.

Kao rezultat, proces povezan preko "firejail --join" će završiti u imenskom prostoru originalni korisnički ID korisnika sa nepromenjenim privilegijama, ali u drugom prostoru tačke montaže, potpuno pod kontrolom napadača.

Rezultirajuća "pridružena" ljuska će sada živjeti na početnom korisniku
imenski prostor, ipak zadržavajući originalne normalne korisničke privilegije imenski prostor mount će biti onaj koji će kontrolirati napadač. As
konfiguracija nonewprivs nije primijenjena, napadač sada može
pokrenite setuid-root programe unutar ovog mount imenskog prostora

Konkretno, napadač može izvršiti setuid-root programe u prostoru tačke montiranja koju je kreirao, omogućavajući mu da, na primjer, promijeni /etc/sudoers konfiguraciju ili PAM parametre u svojoj hijerarhiji datoteka i dobije mogućnost pokretanja komandi kao root koristeći sudo ili njegove uslužne programe.

Na kraju, vrijedno je spomenuti da je razvijen funkcionalni exploit, testiran na trenutnim verzijama openSUSE, Debian, Arch, Gentoo i Fedora s instaliranim firejail uslužnim programom.

Problem je riješen u firejail verziji 0.9.70. Kao sigurnosni popravak, možete postaviti konfiguraciju (/etc/firejail/firejail.config) na "no join" i "force-nonewprivs yes".

Konačno ako ste zainteresirani da saznate više o tome, detalje možete provjeriti u sljedeći link.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.