I komponenten Polkit, som anvÀnds i distributioner för att möjliggöra att icke-privilegierade anvÀndare utför ÄtgÀrder som krÀver högre Ätkomstbehörighet (till exempel montering av USB-enheter), har en sÄrbarhet (CVE-2021-3560) identifierats, vilket gör att en lokal anvÀndare kan fÄ root-behörighet i systemet. SÄrbarheten har ÄtgÀrdats i version Polkit 0.119.
Problemet uppstÄr frÄn version 0.113, men mÄnga distributioner, inklusive RHEL, Ubuntu, Debian och SUSE, har backportat den sÄrbara funktionaliteten i paket baserade pÄ Àldre versioner av Polkit (fixade paket Àr redan tillgÀngliga i distributionerna).
Problemet uppstÄr i funktionen polkit_system_bus_name_get_creds_sync(), som hÀmtar identifierare (uid och pid) för processen som begÀr höjning av privilegier. Processen identifieras av Polkit genom att tilldela ett unikt namn i DBus, vilket senare anvÀnds för att kontrollera privilegier. Om processen kopplas bort frÄn dbus-daemon precis före starten av hanteraren polkit_system_bus_name_get_creds_sync, fÄr hanteraren felkoden istÀllet för det unika namnet.
SÄrbarheten orsakas av att den returnerade felkoden inte hanteras korrekt och att funktionen polkit_system_bus_name_get_creds_sync() returnerar vÀrdet TRUE istÀllet för FALSE, trots att den inte kunde koppla processen med uid/pid och verifiera de begÀrda privilegierna för processen. Koden som kallade funktionen polkit_system_bus_name_get_creds_sync() anser att kontrollen har genomförts framgÄngsrikt och att begÀran om höjning av privilegier kom frÄn root, snarare Àn frÄn en icke-privilegierad anvÀndare, vilket möjliggör att privilegierade ÄtgÀrder kan genomföras utan ytterligare autentisering och bekrÀftelse av behörighet.
KĂ€lla: opennet.ru
