PolKiti haavatavus võimaldas enamiku Linuxi distributsioonide puhul juurjuurdepääsu hankida

Hiljuti Kvaliteetne avaldas uudise, et on tuvastanud haavatavuse (CVE-2021-4034) en süsteemi komponent polkit (endine PolicyKit), mida kasutatakse distributsioonides, et võimaldada privilegeerimata kasutajatel teha toiminguid, mis nõuavad kõrgendatud juurdepääsuõigusi.

Haavatavus võimaldab privilegeeritud kohalikul kasutajal tõsta oma õigused juurkasutajale ja saavutage täielik kontroll süsteemi üle. Probleem kannab koodnime PwnKit ja see on tähelepanuväärne selle poolest, et toodab enamikus Linuxi distributsioonides vaikesätetes töötavat lahendust.

Seda mainitakse probleem esineb PolKiti kaasas olevas pkexeci utiliidis, mis on kaasas SUID-i juurlipuga ja on mõeldud käskude käivitamiseks teiste kasutajate õigustega vastavalt PolKiti reeglitele.

Argumentide vale käsitlemise tõttu pkexecile edastatud käsurealt a privilegeerimata kasutaja võib autentimisest mööda minna ja lasta teie koodi käivitada administraatorina, sõltumata kehtestatud juurdepääsureeglitest. Rünnaku jaoks piisab, olenemata sellest, millised sätted ja piirangud on PolKitis määratud, kui käivitatava faili SUID-i juuratribuut määratakse utiliidi pkexec abil.

Pkexec ei kontrolli õigsust protsessi käivitamisel edastatud käsurea argumentide (argc) arvust. Pkexeci arendajad eeldasid, et argv massiivi esimene kirje sisaldab alati protsessi nime (pkexec) ja teine ​​kirje on kas NULL või pkexeci kaudu käivitatava käsu nimi.

Kuna argumentide arvu ei võrreldud massiivi tegeliku sisuga ja eeldati, et see on alati suurem kui 1, siis kui protsessile anti tühi argv massiiv, mida Linuxi execve funktsioon võimaldab, käsitles pkexec esimese argumendina NULL-i ( protsess nimi) ja järgmise massiivi sisuna puhvermälu otsas.

Probleem on selles, et pärast argv massiivi on mälus envp massiiv, mis sisaldab keskkonnamuutujaid. Seega ekstraheerib pkexec tühja argv massiivi korral andmed kõrgemate õigustega täidetava käsu kohta massiivi esimesest keskkonnamuutujatega elemendist (argv[1] sai identseks envp[0]-ga), mille sisu saab juhtida ründaja.

Pärast väärtuse argv[1] saamist proovib pkexec määrata käivitatava faili täieliku tee, kasutades PATH failiteid, ja kirjutab kursori stringile, mille kogu tee on tagasi argv[1], mis viib väärtuse ülekirjutamiseni. ka esimese keskkonnamuutuja puhul, kuna argv[1] on identne envp[0]-ga. Esimese keskkonnamuutuja nimega manipuleerides saab ründaja pkexecis asendada mõne muu keskkonnamuutuja, näiteks asendada keskkonnamuutuja "LD_PRELOAD", mis pole suid programmides lubatud, ja lasta protsessil laadida protsessi käigus oma jagatud teegi. .

Töötav eksploit kasutab muutuja asendust GCONV_PATH, mida kasutatakse funktsiooni g_printerr() kutsumisel dünaamiliselt laaditava sümbolite ümberkodeerimise teegi tee määramiseks, mis kasutab koodis funktsiooni iconv_open().

GCONV_PATH-i tee uuesti määratledes saab ründaja laadida mitte tavalist iconv-teeki, vaid omaenda teeki, mille draiverid käivitatakse veateate ajal etapis, kus pkexec töötab endiselt administraatorina ja enne käivitusõiguste kontrollimist.

On täheldatud, et kuigi probleem on tingitud mälu rikkumisest, saab seda usaldusväärselt ja korduvalt ära kasutada, olenemata kasutatavast riistvaraarhitektuurist.

Kasutamine valmis edukalt testitud Ubuntu, Debiani, Fedora ja CentOS-iga, kuid seda saab kasutada ka teistes distributsioonides. Algne kasutusviis ei ole veel avalikult saadaval, mis näitab, et see on triviaalne ja teised uurijad saavad selle hõlpsasti uuesti luua, mistõttu on oluline installida kiirparanduse värskendus võimalikult kiiresti mitme kasutajaga süsteemidesse.

Polkit on saadaval ka BSD ja Solarise süsteemide jaoks, kuid selle kasutamist pole uuritud. Teada on see, et OpenBSD-l rünnet sooritada ei saa, kuna OpenBSD kernel ei luba execve() kutsumisel edastada null argc väärtust.

Probleem on olnud alates 2009. aasta maist, kui lisati käsk pkexec. PolKiti haavatavuse parandus on endiselt saadaval paigana (parandusversiooni pole moodustatud), kuid kuna distributsiooni arendajaid teavitati probleemist eelnevalt, andis enamik distributsioone välja värskenduse samal ajal. haavatavuse teabe kohta.

Lõpuks kui olete huvitatud sellest rohkem teada saama, saate üksikasju vaadata järgmine link.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.