Polkit'i komponendis, mida kasutatakse jaotustes, et lubada vĂ€hem priviligeeritud kasutajatel teostada tegevusi, mis nĂ”uavad tĂ”stetud Ă”igusi (nt USB-mĂ€lupulga mountimine), on tuvastatud haavatavus (CVE-2021-3560), mis vĂ”imaldab kohalikel kasutajatel saada root-Ă”igusi sĂŒsteemis. Haavatavus on kĂ”rvaldada versioonis Polkit 0.119.
Probleem ilmneb alates vÀljaandest 0.113, kuid paljud jaotused, sealhulgas RHEL, Ubuntu, Debian ja SUSE, on haavatava funktsionaalsuse tagasiportinud pakettidesse, pÔhinedes vanematele Polkit'i vÀljaandele (pakettide parandused on juba saadaval jaotustes).
Probleem ilmneb funktsioonis polkit_system_bus_name_get_creds_sync(), mis saadab identifikaatorid (uid ja pid) protsessist, mis kĂŒsib Ă”iguste tĂ”stmist. Protsessi tuvastab Polkit, mÀÀrates DBus'is unikaalse nime, mida kasutatakse edaspidi Ă”iguste kontrollimiseks. Kui protsess ĂŒhendatakse dbus-daemon'ist lahti vahetult enne polkit_system_bus_name_get_creds_sync'i töötleja kĂ€ivitamist, saab töötleja unikaalse nime asemel veakoodi.
Haavatavus on tingitud sellest, et tagastatud veakoodi ei töötata korralikult ĂŒles ja funktsioon polkit_system_bus_name_get_creds_sync() tagastab vÀÀrtuse TRUE, mitte FALSE, hoolimata sellest, et ei suuda protsessi uid/pid'iga siduda ja kontrollida protsessi kĂŒsitud Ă”igusi. Kood, millest funktsioon polkit_system_bus_name_get_creds_sync() kutsuti, usub, et kontrollimine toimus edukalt ja Ă”iguste tĂ”stmise taotlus tuli root'ilt, mitte vĂ€hem privileege saanud kasutajalt, mis vĂ”imaldab teostada privileege tegevusi ilma tĂ€iendava autentimise ja volituste kinnitamiseta.
Allikas: opennet.ru
