Prije nekoliko dana Qualys je objavio vijest da je identificirao ozbiljnu ranjivoste (već katalogiziran pod CVE-2022-3328) u uslužnom programu snap-confine, koji se isporučuje s root SUID zastavicom i poziva ga snapd proces da formira izvršno okruženje za aplikacije distribuirane u paketima snap formata.
Kaže se da ranjivost omogućava neprivilegovanom lokalnom korisniku da postigne izvršenje koda kao root u Ubuntu-ovoj podrazumevanoj konfiguraciji.
Zanimljivo je da je ranjivost u pitanju uvedena u procesu popravljanja slične ranjivosti iz februara u snap-konfinu.
Kakav uticaj ima CVE-2022-3328?
Qualys u svom izvještaju navodi da je ranjivost snap-confine uzrokovano uvjetom utrke u funkciji must_mkdir_and_open_with_perms(), dodano radi zaštite od zamjene direktorija /tmp/snap.$SNAP_NAME sa simboličkom vezom nakon verifikacije vlasnika, ali prije nego što se pozove sistemski poziv za montiranje radi povezivanja direktorija za montiranje u njega za paket u span formatu.
Dodatna sigurnost je bila preimenovanje /tmp/snap.$SNAP_NAME direktorija u drugi direktorij u /tmp s nasumičnim imenom ako postoji i nije u vlasništvu root-a.
Iskorišćavanjem operacije preimenovanja iz /tmp/snap.$SNAP_NAME direktorija, istraživači su iskoristili činjenicu da snap-confine također kreira direktorij /tmp/snap.rootfs_x za sadržaj snap paketa. mkdtemp() koji nasumično bira "x" dio imena, ali paket pod nazivom "rootfs_x" može proći kroz sc_instance_name_validate (tj. ideja je da se $SNAP_NAME postavi na "rootfs_x" i tada će operacija preimenovanja rezultirati da direktorij /tmp/snap.rootfs_x bude prepisan od strane root na snap).
Za postizanje istovremene upotrebe iz /tmp/snap.rootfs_xx i preimenovanje /tmp/snap.$SNAP_NAME, dvije instance snap-confine su pokrenute.
Čim je prva instanca kreirala /tmp/snap.rootfs_xx proces je blokiran i pokrenuta je druga instanca sa imenom paketa rootfs_x, što je uzrokovalo da privremeni direktorij druge instance /tmp/snap.$SNAP_NAME postane /tmp/snap .rootfs_x (korijenski direktorij) prve instance.
Odmah nakon izvođenja promjene imena, druga instanca nije uspjela i /tmp/snap.rootfs_x je zamijenjen manipulacijom stanja rase, kao u februarskom exploit-u. Nakon promjene, zaključavanje izvršenja je uklonjeno iz prve instance i napadači su dobili potpunu kontrolu nad trenutnim korijenskim direktorijumom.
Poslednji korak je bio kreiranje simbolične veze /tmp/snap.rootfs_x/tmp koju je koristila funkcija sc_bootstrap_mount_namespace() za vezanje i montiranje stvarnog direktorija za upisivanje /tmp u bilo koji direktorij u datotečnom sistemu, budući da poziv mount() slijedi simbolične veze prije montiranja. Ovakvo montiranje je blokirano ograničenjima AppArmor-a, ali da bi zaobišao ovaj blok, eksploatacija je koristila dvije ranjivosti. pomoćnici u multipathd.
Uspješno iskorištavanje sve tri ranjivosti omogućava svakom nepovlaštenom korisniku da dobije root privilegije na ranjivom uređaju. Qualysovi sigurnosni istraživači su potvrdili ranjivost, razvili eksploataciju i stekli potpune root privilegije na zadanim Ubuntu instalacijama.
Čim je Qualysova jedinica za istraživanje prijetnji potvrdila ranjivost, angažirali smo se u odgovornom otkrivanju ranjivosti i koordinirali smo s dobavljačima i distribucijama otvorenog koda kako bismo objavili ovu novootkrivenu ranjivost.
Istraživači su uspjeli pripremiti radni eksploat koji pruža root pristup na Ubuntu Serveru 22.04, koji, osim ranjivosti snap-confine, uključuje i dvije ranjivosti u višeputnom procesu (CVE-2022-41974, CVE-2022-41973) koje se odnose na zaobilaženje dozvola prilikom prosljeđivanja privilegiranih komandi i nesigurno rukovanje simboličkim vezama.
Vrijedno je to spomenuti problem je riješen u izdanju snapd 2.57.6, Osim toga, izdana su ažuriranja paketa za sve podržane grane Ubuntua.
Konačno, ako vas zanima više o tome, možete se obratiti detaljima Na sledećem linku.