Luka w systemd, potencjalnie pozwalająca na podniesienie swoich uprawnień

W menedżerze systemowym systemd wykryto vulnerabilność (CVE-2020-1712), który potencjalnie umożliwia wykonanie własnego kodu z podwyższonymi uprawnieniami poprzez wysłanie specjalnie sformatowanego żądania na szynę DBus. Problem został rozwiązany w wersji testowej systemd 245-rc1 (rozwiązujące problem poprawki: 1, 2, 3). Podatność została usunięta w dystrybucjach Ubuntu, Fedora, RHEL (objawia się w RHEL 8, ale nie dotyczy RHEL 7), CentOS, SUSE/openSUSE i ROSA, ale w momencie pisania artykułu pozostaje niezałatwiona w Debian i Arch Linux.

Podatność jest spowodowana odwoływaniem się do już zwolnionego obszaru pamięci (use-after-free), które występuje podczas asynchronicznego wykonywania żądań do Polkit w trakcie przetwarzania komunikatów DBus. Niektóre interfejsy DBus używają pamięci podręcznej do chwilowego przechowywania obiektów i czyszczą elementy pamięci podręcznej, gdy szyna DBus zostanie zwolniona do przetwarzania innych żądań. Jeśli obsługa metody DBus używa bus_verify_polkit_async(), być może będzie musiała poczekać na zakończenie operacji w Polkit. Po gotowości Polkit obsługa jest wywoływana ponownie i odnosi się do wcześniej przydzielonych danych w pamięci. Jeśli żądanie do Polkit trwa zbyt długo, elementy w pamięci podręcznej mają czas na wyczyszczenie przed ponownym wywołaniem obsługi metody DBus.

Z usług, które mogą wykorzystać podatność, wymienia się systemd-machined, który zapewnia API DBus org.freedesktop.machine1.Image.Clone, co prowadzi do tymczasowego zachowywania danych w pamięci podręcznej i asynchronicznego odwoływania się do Polkit. Interfejs
org.freedesktop.machine1.Image.Clone jest dostępny dla wszystkich nieuprzywilejowanych użytkowników systemu, którzy mogą zainicjować awarię usług systemd lub potencjalnie uzyskać wykonanie kodu z uprawnieniami roota (prototyp exploita jak dotąd nie został zaprezentowany). Kod umożliwiający wykorzystanie podatności został dodano w systemd-machined w 2015 roku w wersji systemd 220 (w RHEL 7.x używany jest systemd 219).

Ź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