Luka w Polkit, pozwalająca na podniesienie swoich uprawnień w systemie

W komponencie Polkit, używanym w dystrybucjach do organizacji wykonywania działań, które wymagają podwyższonych praw dostępu przez nieuprzywilejowanych użytkowników (na przykład montowania dysków USB), odkryto lukę (CVE-2021-3560), która pozwala lokalnemu użytkownikowi uzyskać uprawnienia root w systemie. Luka została usunięta w wersji Polkit 0.119.

Problem występuje od wydania 0.113, ale wiele dystrybucji, w tym RHEL, Ubuntu, Debian i SUSE, backportowało podatne funkcjonalności do pakietów opartych na starszych wydaniach Polkit (poprawki pakietów są już dostępne w dystrybucjach).

Problem występuje w funkcji polkit_system_bus_name_get_creds_sync(), która pobiera identyfikatory (uid i pid) procesu żądającego podwyższenia uprawnień. Proces jest identyfikowany przez Polkit poprzez przypisanie unikalnej nazwy w DBus, która jest następnie używana do weryfikacji uprawnień. Jeśli proces odłącza się od dbus-daemon tuż przed uruchomieniem obsługi polkit_system_bus_name_get_creds_sync, to zamiast unikalnej nazwy, obsługa otrzymuje kod błędu.

Luka jest spowodowana tym, że zwrócony kod błędu nie jest odpowiednio obsługiwany i funkcja polkit_system_bus_name_get_creds_sync() zwraca wartość TRUE zamiast FALSE, mimo że nie mogła powiązać procesu z uid/pid i sprawdzić żądanych dla niego uprawnień. Kod, z którego wywołano funkcję polkit_system_bus_name_get_creds_sync(), uważa, że weryfikacja została przeprowadzona pomyślnie i żądanie podwyższenia uprawnień pochodzi od użytkownika root, a nie od nieuprzywilejowanego użytkownika, co daje możliwość wykonywania czynności wymagających uprawnień bez dodatkowej autoryzacji i potwierdzenia kwalifikacji.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster