Jie aptiko „firejail“ pažeidžiamumą, leidžiantį root prieigą prie sistemos

Neseniai jie paskelbė žinią, kad buvo nustatytas pažeidžiamumas (jau įtraukta į CVE-2022-31214) Firejail programos smėlio dėžės įrankyje, išsamiai aprašoma, kad aptiktas trūkumas gali leisti vietiniam vartotojui tapti pagrindinio kompiuterio sistemos rootiniu.

„Firejail“ naudoja vardų erdvių mechanizmą, „AppArmor“ ir sistemos skambučių filtravimą (seccomp-bpf) sistemoje „Linux“, kad būtų galima atskirti, tačiau norint sukonfigūruoti izoliuotą leidimą, reikia didesnių privilegijų, kurias jis gauna prisijungdamas prie suid šakninės vėliavėlės įrankio arba paleisdamas su sudo.

Pažeidžiamumas atsirado dėl „–join=“ parinkties logikos klaidos », sukurta prisijungti prie izoliuotos aplinkos, kuri jau veikia (panaši į prisijungimo komandą smėlio dėžės aplinkai) su aplinka, apibrėžta joje vykdomo proceso ID. Prieš paleidimą, firejail aptinka nurodyto proceso privilegijas ir pritaiko jas naujam procesui, kuris prisijungia prie aplinkos su parinktimi „–join“.

Prieš prisijungiant, patikrina, ar nurodytas procesas veikia firejail aplinkoje. Šis patikrinimas įvertina failo /run/firejail/mnt/join egzistavimą. Norėdami išnaudoti pažeidžiamumą, užpuolikas gali imituoti fiktyvią neizoliuotą priešgaisrinę aplinką naudodami mount vardų sritį ir tada prisijungdami prie jos naudodami parinktį „--join“.

Jei konfigūracija neįgalina režimo, kuriuo draudžiama gauti papildomų privilegijų naujuose procesuose (prctl NO_NEW_PRIVS), „Firejail“ prijungs vartotoją prie fiktyvios aplinkos ir bandys pritaikyti vartotojo vardų srities konfigūraciją vartotojo identifikatoriams (vardų erdvės naudotojas) inicijavimo procesui ( PID 1).

Didžioji dalis prisijungimo funkcijos logikos yra šaltinio kode iš failo „src/firejail/join.c“. Kritinės kodo dalys vykdomos naudojant padidintos privilegijos (galiojantis UID 0). Proceso ID, perduotas kaip komanda tikrinamas linijos argumentas, siekiant nustatyti, ar tai rkonteinerį ir nustatyti kai kurias jo savybes, kurios Tai taip pat taikoma naujam įstojimo procesui.

Pagrindiniai kriterijai sprendžiant, ar prisijungti prie tikslinio proceso sėkmingas yra failo buvimas paskirties vietos vardų srityje, procesas rastas /run/firejail/mnt/join. Šis patikrinimas atliekamas ffunkcija „is_ready_for_join()“. Failas atidaromas naudojant lŽymės „O_RDONLY|O_CLOEXEC“ ir sekimo „fstat()“ rezultatas turėtų atitikti šiuos reikalavimus:

– failas turi būti įprastas failas.
– failas turi priklausyti vartotojo ID 0 (kaip matyti iš pradinio vartotojo
vardų erdvė).
– failas turi būti 1 baito dydžio.

Kaip rezultatas, procesas, prijungtas per "firejail --join", atsidurs vardų srityje pradinis vartotojo ID su nepakitusiomis privilegijomis, bet kitoje tvirtinimo taško erdvėje, kurią visiškai kontroliuoja užpuolikas.

Gautas „prijungtas“ apvalkalas dabar bus naudojamas pradiniam vartotojui
vardų erdvė, vis dėlto išlaikant pirmines įprasto vartotojo teises mount vardų sritis bus ta, kurią valdys užpuolikas. Kaip
nonewprivs konfigūracija nebuvo pritaikyta, užpuolikas dabar gali
paleiskite setuid-root programas šioje mount vardų erdvėje

Visų pirma, užpuolikas gali paleisti setuid-root programas sukurto prijungimo taško erdvėje, leidžiantis, pavyzdžiui, pakeisti /etc/sudoers konfigūraciją arba PAM parametrus savo failų hierarchijoje ir įgyti galimybę vykdyti komandas kaip root. naudojant sudo ar jo paslaugas.

Galiausiai verta paminėti, kad buvo sukurtas funkcinis išnaudojimas, išbandytas dabartinėse openSUSE, Debian, Arch, Gentoo ir Fedora versijose su įdiegta „Firejail“ programa.

Problema buvo išspręsta naudojant Firejail 0.9.70 versiją. Kaip saugumo pataisą galite nustatyti konfigūraciją (/etc/firejail/firejail.config) į „no join“ ir „force-nonewprivs yes“.

Pagaliau jei norite sužinoti daugiau apie tai, išsamią informaciją galite patikrinti sekanti nuoroda.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.