Ranjivost u Polkitu koja vam omogućava da eskalirate svoje privilegije u sistemu

Identifikovana je ranjivost (CVE-2021-3560) u komponenti Polkit, koja se koristi u distribucijama kako bi se omogućilo neprivilegiranim korisnicima da izvode radnje koje zahtijevaju povišena prava pristupa (na primjer, montiranje USB diska), što omogućava lokalnom korisniku da dobiti root prava u sistemu. Ranjivost je ispravljena u Polkit verziji 0.119.

Problem je prisutan od izdanja 0.113, ali mnoge distribucije, uključujući RHEL, Ubuntu, Debian i SUSE, vratile su pogođenu funkcionalnost u pakete zasnovane na starijim izdanjima Polkita (popravci paketa su već dostupni u distribucijama).

Problem se manifestuje u funkciji polkit_system_bus_name_get_creds_sync(), koja dobija identifikatore (uid i pid) procesa koji zahteva podizanje privilegija. Polkit identificira proces dodjeljivanjem jedinstvenog imena u DBus-u, koje se zatim koristi za provjeru privilegija. Ako se proces odvoji od dbus-daemon-a neposredno prije pokretanja rukovaoca polkit_system_bus_name_get_creds_sync, rukovalac prima kod greške umjesto jedinstvenog imena.

Ranjivost je uzrokovana činjenicom da vraćeni kod greške nije pravilno obrađen i funkcija polkit_system_bus_name_get_creds_sync() vraća TRUE umjesto FALSE, uprkos tome što nije uspjela uskladiti proces s uid/pid-om i provjeriti privilegije tražene za proces. Kod iz kojeg je pozvana funkcija polkit_system_bus_name_get_creds_sync() pretpostavlja da je provjera bila uspješna i da je zahtjev za eskaliranjem privilegija došao od roota, a ne od neprivilegiranog korisnika, što omogućava izvođenje privilegiranih radnji bez dodatne provjere autentičnosti i provjere vjerodajnica.

izvor: opennet.ru

Dodajte komentar