Vulnerabilitate în Polkit care permite creșterea privilegiilor în sistem

În componenta Polkit, folosită în distribuțiile pentru organizarea acțiunilor utilizatorilor fără privilegii care necesită drepturi de acces ridicate (de exemplu, montarea unui mediu USB), a fost descoperită o vulnerabilitate (CVE-2021-3560) care permite unui utilizator local să obțină drepturi de root în sistem. Vulnerabilitatea a fost remediată în versiunea Polkit 0.119.

Problema apare începând cu lansarea 0.113, dar multe distribuții, inclusiv RHEL, Ubuntu, Debian și SUSE, au inclus funcționalitatea vulnerabilă în pachete bazate pe versiuni mai vechi de Polkit (corecțiile pachetelor sunt deja disponibile în distribuții).

Problema se manifestă în funcția polkit_system_bus_name_get_creds_sync(), care obține identificatorii (uid și pid) procesului care solicită creșterea privilegiilor. Procesul este identificat de Polkit prin atribuirea unui nume unic în DBus, care este folosit ulterior pentru verificarea privilegiilor. Dacă procesul se deconectează de la dbus-daemon chiar înainte de a lansa handlerul polkit_system_bus_name_get_creds_sync, handlerul primește un cod de eroare în loc de numele unic.

Vulnerabilitatea este cauzată de faptul că codul de eroare returnat nu este gestionat corespunzător, iar funcția polkit_system_bus_name_get_creds_sync() returnează TRUE în loc de FALSE, deși nu a reușit să asocieze procesul cu uid/pid și să verifice privilegiile solicitate pentru proces. Codul din care a fost apelată funcția polkit_system_bus_name_get_creds_sync() consideră că verificarea a fost efectuată cu succes și că solicitarea de creștere a privilegiilor a venit de la root, nu de la un utilizator fără privilegii, ceea ce permite executarea de acțiuni privilegiate fără autenticare suplimentară și confirmarea autorităților.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster