Firejail-haavoittuvuus, joka mahdollistaa pääkäyttäjän pääsyn järjestelmään

Firejail-sovelluksen eristysapuohjelmassa on havaittu haavoittuvuus (CVE-2022-31214), jonka avulla paikallinen käyttäjä voi saada pääkäyttäjän oikeudet isäntäjärjestelmään. Julkisessa käytössä on toimiva hyväksikäyttö, joka on testattu uusissa openSUSE-, Debian-, Arch-, Gentoo- ja Fedora-julkaisuissa Firejail-apuohjelman ollessa asennettuna. Ongelma on korjattu Firejail 0.9.70 -julkaisussa. Suojauksen kiertotapana voit määrittää asetuksissa (/etc/firejail/firejail.config) parametrit "join no" ja "force-nonewprivs yes".

Firejail käyttää nimiavaruuksia, AppArmoria ja järjestelmäkutsusuodatusta (seccomp-bpf) Linuxissa eristämiseen, mutta vaatii korotettuja oikeuksia eristetyn suorituksen määrittämiseen, jonka se saa sitoutumalla apuohjelman lippuun suid root tai suorittamalla sudolla. Haavoittuvuuden aiheuttaa "--join=" vaihtoehdon logiikka, joka on tarkoitettu muodostamaan yhteys jo käynnissä olevaan eristettyyn ympäristöön (analogisesti sandbox-ympäristön sisäänkirjautumiskomennolla), jonka ympäristö määrittää siinä käynnissä oleva prosessitunnus. Etuoikeuksien palautusvaiheen aikana firejail määrittää määritetyn prosessin oikeudet ja soveltaa niitä uuteen prosessiin, joka on yhdistetty ympäristöön "-join"-vaihtoehdon avulla.

Ennen yhteyden muodostamista se tarkistaa, onko määritetty prosessi käynnissä firejail-ympäristössä. Tämä tarkistus arvioi tiedoston /run/firejail/mnt/join olemassaolon. Hyödyntääkseen haavoittuvuutta hyökkääjä voi simuloida kuvitteellista, eristämätöntä firejail-ympäristöä käyttämällä mount-nimiavaruutta ja muodostaa sitten yhteyden siihen käyttämällä "--join"-vaihtoehtoa. Jos asetukset eivät salli tila, jolla estetään lisäoikeuksien hankkiminen uusissa prosesseissa (prctl NO_NEW_PRIVS), firejail yhdistää käyttäjän valeympäristöön ja yrittää käyttää aloitusprosessin (PID 1) käyttäjän nimiavaruuden asetuksia.

Tämän seurauksena "firejail -join":n kautta yhdistetty prosessi päätyy käyttäjän alkuperäiseen käyttäjätunnuksen nimiavaruuteen muuttumattomin oikeuksin, mutta eri liitospistetilaan, jota hyökkääjä hallitsee täysin. Hyökkääjä voi myös suorittaa setuid-root-ohjelmia luomassaan liitospistetilassa, mikä mahdollistaa esimerkiksi tiedostohierarkian /etc/sudoers-asetusten tai PAM-parametrien muuttamisen ja komentojen suorittamisen pääkäyttäjän oikeuksin käyttämällä sudo- tai su apuohjelmat.

Lähde: opennet.ru

Lisää kommentti