Chyba zabezpečení v Polkitu, která vám umožňuje eskalovat vaše oprávnění v systému

V komponentě Polkit byla identifikována zranitelnost (CVE-2021-3560), která se používá v distribucích, aby umožnila neprivilegovaným uživatelům provádět akce vyžadující zvýšená přístupová práva (například připojení USB disku), což umožňuje místnímu uživateli získat práva root v systému. Tato chyba zabezpečení je opravena ve verzi Polkit 0.119.

Problém je přítomen od vydání 0.113, ale mnoho distribucí, včetně RHEL, Ubuntu, Debian a SUSE, zpětně portovalo postiženou funkci do balíčků založených na starších vydáních 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 žádajícího o zvýšení oprávnění. Proces je identifikován Polkitem přiřazením jedinečného názvu v DBus, který se pak používá k ověření oprávnění. Pokud se proces odpojí od dbus-daemon těsně před spuštěním obslužné rutiny polkit_system_bus_name_get_creds_sync, obslužná rutina obdrží namísto jedinečného názvu kód chyby.

Chyba zabezpečení je způsobena tím, že vrácený chybový kód není správně zpracován a funkce polkit_system_bus_name_get_creds_sync() vrací TRUE namísto FALSE, přestože není schopna přiřadit proces k uid/pid a ověřit oprávnění požadovaná pro proces. Kód, ze kterého byla funkce polkit_system_bus_name_get_creds_sync() volána, předpokládá, že kontrola byla úspěšná a požadavek na eskalaci oprávnění přišel od uživatele root a nikoli od neprivilegovaného uživatele, což umožňuje provádět privilegované akce bez dodatečného ověřování a ověřování přihlašovacích údajů.

Zdroj: opennet.ru

Přidat komentář