Zranitelnost v Polkit, která umožňuje zvýšit privilegium v systému

V komponentě Polkit, která se používá v distribucích pro organizaci provádění akcí neprivilegovanými uživateli vyžadujícími zvýšená práva (například připojení USB disku), byla zjištěna zranitelnost (CVE-2021-3560), která umožňuje místnímu uživateli získat práva root v systému. Zranitelnost byla opravena ve verzi Polkit 0.119.

Problém se projevuje od vydání 0.113, ale mnoho distribucí, včetně RHEL, Ubuntu, Debian a SUSE, zpětně portovalo zranitelnou funkčnost do balíčků vycházejících z starších verzí Polkit (opravy balíčků jsou již k dispozici v distribucích).

Problém se projevuje ve funkci polkit_system_bus_name_get_creds_sync(), která získává identifikátory (uid a pid) procesu požadujícího zvýšení oprávnění. Proces je Polkit identifikován prostřednictvím přidělení jedinečného jména v DBus, které se následně používá pro kontrolu oprávnění. Pokud se proces odpojí od dbus-daemon těsně před spuštěním zpracovatele polkit_system_bus_name_get_creds_sync, pak místo jedinečného jména zpracovatel dostane kód chyby.

Zranitelnost je způsobena tím, že vrácený kód chyby není správně zpracován a funkce polkit_system_bus_name_get_creds_sync() vrací hodnotu TRUE namísto FALSE, přestože se jí nepodařilo přiřadit proces k uid/pid a zkontrolovat požadovaná oprávnění pro tento proces. Kód, ze kterého byla volána funkce polkit_system_bus_name_get_creds_sync(), se domnívá, že byla kontrola úspěšná a žádost o zvýšení oprávnění přišla od root, nikoli od neprivilegovaného uživatele, což umožňuje provádět privilegované akce bez další autentizace a potvrzení oprávnění.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster