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

Nedavno su objavili vijest da utvrđena je ranjivost (već naveden pod CVE-2022-31214) u alatu za zaštitu od Firejail aplikacije, detaljno je navedeno da bi otkriveni nedostatak mogao omogućiti lokalnom korisniku da postane root na glavnom sustavu.

Firejail koristi mehanizam imenskih prostora, AppArmor i filtriranje sistemskih poziva (seccomp-bpf) u Linuxu za izolaciju, ali zahtijeva povišene privilegije za konfiguriranje izoliranog izdanja, koje dobiva vezanjem za uslužni program suid root zastavice ili pokretanjem sa sudo.

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

Prije povezivanja, provjerava radi li se navedeni proces u firejail okruženju. Ova provjera procjenjuje postojanje /run/firejail/mnt/join datoteke. Da bi se iskoristila ranjivost, napadač može simulirati fiktivno neizolirano okruženje vatrogasnog zatvora koristeći prostor imena mount, a zatim se povezujete s njim pomoću opcije "--join".

Ako konfiguracija ne omogući način zabrane dobivanja dodatnih privilegija u novim procesima (prctl NO_NEW_PRIVS), firejail će povezati korisnika s fiktivnim okruženjem i pokušati primijeniti konfiguraciju korisničkog imenskog prostora korisničkih identifikatora (korisnika prostora imena) pokretačkog 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 izvode s povišene privilegije (djelotvorni UID 0). ID procesa prošao je kao naredba argument linije se provjerava kako bi se utvrdilo je li rspremnik i odrediti neka njegova svojstva koja Također se odnosi i na novi postupak ulaska.

Glavni kriteriji za odlučivanje hoće li se pridružiti ciljanom procesu uspješno je prisutnost datoteke u imenskom prostoru mount cilja, proces pronađen u /run/firejail/mnt/join. Ova provjera se vrši na ffunkcija `is_ready_for_join()`. Datoteka se otvara pomoću lOznake `O_RDONLY|O_CLOEXEC` i rezultat traga `fstat()` trebaju 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 toga, proces povezan putem "firejail --join" završit će u imenskom prostoru izvorni korisnički ID korisnika s nepromijenjenim privilegijama, ali u drugom prostoru točke montaže, u potpunosti kontroliranom od strane napadača.

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

Konkretno, napadač može pokrenuti setuid-root programe u prostoru točke montiranja koju je stvorio, dopuštajući mu da, na primjer, promijeni /etc/sudoers konfiguraciju ili PAM parametre u svojoj hijerarhiji datoteka i dobije mogućnost pokretanja naredbi 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 vas zanima više o tome, detalje možete provjeriti u sljedeći link.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.