Polkiti haavatavus, mis võimaldab teil oma õigusi süsteemis suurendada

Polkiti komponendis on tuvastatud haavatavus (CVE-2021-3560), mida kasutatakse distributsioonides, et võimaldada privilegeerimata kasutajatel teha toiminguid, mis nõuavad kõrgendatud juurdepääsuõigusi (nt USB-draivi ühendamine), mis võimaldab kohalikul kasutajal omandada süsteemi juurõigused. Haavatavus on parandatud Polkiti versioonis 0.119.

Probleem on ilmnenud alates versioonist 0.113, kuid paljud distributsioonid, sealhulgas RHEL, Ubuntu, Debian ja SUSE, on mõjutatud funktsioonid tagasiportinud vanematel Polkiti väljalasetel põhinevatesse pakettidesse (paketiparandused on distributsioonides juba saadaval).

Probleem ilmneb funktsioonis polkit_system_bus_name_get_creds_sync(), mis hangib privileegi tõstmist taotleva protsessi identifikaatorid (uid ja pid). Polkit tuvastab protsessi, määrates DBusis unikaalse nime, mida seejärel kasutatakse õiguste kontrollimiseks. Kui protsess katkestab ühenduse dbus-deemoniga vahetult enne töötleja polkit_system_bus_name_get_creds_sync käivitumist, saab töötleja kordumatu nime asemel veakoodi.

Haavatavuse põhjuseks on asjaolu, et tagastatud veakoodi ei töödelda korralikult ja funktsioon polkit_system_bus_name_get_creds_sync() tagastab TRUE, mitte FALSE, hoolimata sellest, et see ei suuda protsessi uid/pid-ga sobitada ja protsessi jaoks taotletud õigusi kontrollida. Kood, millest funktsioon polkit_system_bus_name_get_creds_sync() kutsuti, eeldab, et kontroll oli edukas ja õiguste eskaleerimise taotlus tuli root, mitte privilegeeritud kasutajalt, mis võimaldab sooritada privilegeeritud toiminguid ilma täiendava autentimise ja mandaatide kontrollimiseta.

Allikas: opennet.ru

Lisa kommentaar