Luka w systemd-coredump, która umożliwia ujawnienie zawartości pamięci programów suid.

W komponencie systemd-coredump, który odpowiada za obsługę plików core generowanych po awaryjnym zakończeniu procesów, odkryto lukę (CVE-2022-4415), która umożliwia nieuprzywilejowanemu lokalnemu użytkownikowi określenie zawartości pamięci uprzywilejowanych procesów uruchamianych z flagą suid root. Obecność problemu w konfiguracji domyślnej potwierdzono w dystrybucjach openSUSE, Arch, Debian, Fedora i SLES.

Luka ta wynika z braku prawidłowego przetwarzania parametru sysctl fs.suid_dumpable w systemd-coredump, który przy domyślnej wartości 2 pozwala na generację zrzutów core dla procesów z flagą suid. Zakłada się, że wytwarzane przez jądro pliki core procesów suid powinny mieć ustawione prawa dostępu umożliwiające odczyt tylko użytkownikowi root. Narzędzie systemd-coredump, które jest wywoływane przez jądro w celu zapisania plików core, zapisuje plik core pod identyfikatorem root, ale dodatkowo udostępnia dostęp do plików core na podstawie ACL, co zezwala na odczyt na podstawie identyfikatora właściciela, który pierwotnie uruchomił proces.

Ta cecha umożliwia ładowanie plików core bez względu na to, czy program może zmienić identyfikator użytkownika i działać z wyższymi uprawnieniami. Atak sprowadza się do tego, że użytkownik może uruchomić aplikację suid i wysłać do niej sygnał SIGSEGV, po czym załadować zawartość pliku core, która obejmuje fragment pamięci procesu w momencie awaryjnego zakończenia.

Na przykład, użytkownik może uruchomić „/usr/bin/su” i w innym terminalu zakończyć jego działanie poleceniem „kill -s SIGSEGV `pidof su`”, po czym systemd-coredump zapisze plik core w katalogu /var/lib/systemd/coredump, ustawiając dla niego ACL umożliwiający odczyt bieżącemu użytkownikowi. Ponieważ narzędzie suid „su” odczytuje w pamięci zawartość /etc/shadow, atakujący może uzyskać dostęp do informacji o haszach haseł wszystkich użytkowników w systemie. Narzędzie sudo nie jest podatne na atak, ponieważ zabrania generacji plików core za pomocą ulimit.

Według oświadczenia twórców systemd, podatność występuje od wydania systemd 247 (listopad 2020 roku), ale według badacza, który ujawnił problem, podatny jest także wydanie 246. Podatność ujawnia się, jeśli systemd jest zbudowany z biblioteką libacl (domyślnie we wszystkich popularnych dystrybucjach). Poprawka jest obecnie dostępna w formie łatki. Można śledzić poprawki w dystrybucjach na następujących stronach: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch. Jako tymczasowe zabezpieczenie można ustawić sysctl fs.suid_dumpable na wartość 0, co wyłącza przekazywanie zrzutów do obsługi systemd-coredump.

Ź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