Ranjivost u Polkitu koja vam omogućuje da povećate svoje privilegije u sustavu

Utvrđena je ranjivost (CVE-2021-3560) u komponenti Polkit, koja se koristi u distribucijama kako bi neprivilegiranim korisnicima omogućila izvođenje radnji koje zahtijevaju povišena prava pristupa (na primjer, montiranje USB pogona), što lokalnom korisniku omogućuje dobiti root prava u sustavu. Ranjivost je ispravljena u Polkit verziji 0.119.

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

Problem se očituje u funkciji polkit_system_bus_name_get_creds_sync(), koja dobiva identifikatore (uid i pid) procesa koji zahtijeva podizanje privilegija. Polkit identificira proces dodjeljivanjem jedinstvenog imena u DBus, koje se zatim koristi za provjeru privilegija. Ako se proces prekine s dbus-daemonom neposredno prije pokretanja rukovatelja polkit_system_bus_name_get_creds_sync, rukovatelj prima kod pogreške umjesto jedinstvenog naziva.

Ranjivost je uzrokovana činjenicom da vraćeni kod pogreške nije pravilno obrađen i funkcija polkit_system_bus_name_get_creds_sync() vraća TRUE umjesto FALSE, unatoč tome što ne može uskladiti proces s uid/pid 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 eskalacijom privilegija došao od root-a, a ne od neprivilegiranog korisnika, što omogućuje izvođenje privilegiranih radnji bez dodatne autentifikacije i verifikacije vjerodajnica.

Izvor: opennet.ru

Dodajte komentar