Ranljivost v Polkitu, ki vam omogoča, da povečate svoje privilegije v sistemu

Ranljivost (CVE-2021-3560) je bila ugotovljena v komponenti Polkit, ki se uporablja v distribucijah, da neprivilegiranim uporabnikom omogoči izvajanje dejanj, ki zahtevajo povišane pravice dostopa (na primer priklop pogona USB), kar lokalnemu uporabniku omogoča pridobite korenske pravice v sistemu. Ranljivost je odpravljena v Polkit različici 0.119.

Težava je prisotna od izdaje 0.113, vendar so številne distribucije, vključno z RHEL, Ubuntu, Debian in SUSE, prenesele prizadeto funkcionalnost v pakete, ki temeljijo na starejših izdajah Polkita (popravki paketov so že na voljo v distribucijah).

Težava se kaže v funkciji polkit_system_bus_name_get_creds_sync(), ki pridobi identifikatorja (uid in pid) procesa, ki zahteva dvig privilegijev. Proces identificira Polkit tako, da mu dodeli edinstveno ime v DBus, ki se nato uporabi za preverjanje privilegijev. Če proces prekine povezavo z dbus-daemon tik preden se zažene upravljalnik polkit_system_bus_name_get_creds_sync, prejme upravljavec kodo napake namesto edinstvenega imena.

Ranljivost je posledica dejstva, da vrnjena koda napake ni pravilno obdelana in funkcija polkit_system_bus_name_get_creds_sync() vrne TRUE namesto FALSE, kljub temu, da ni uspelo uskladiti procesa z uid/pid in preveriti privilegijev, zahtevanih za proces. Koda, iz katere je bila poklicana funkcija polkit_system_bus_name_get_creds_sync(), predvideva, da je bilo preverjanje uspešno in da je zahteva za eskalacijo privilegijev prišla od root in ne od neprivilegiranega uporabnika, kar omogoča izvajanje privilegiranih dejanj brez dodatne avtentikacije in preverjanja poverilnic.

Vir: opennet.ru

Dodaj komentar