Ponad 10-letnie podatności w narzędziu needrestart

24 listopada, 2024

Zespół amerykańskiej firmy Qualys zajmującej się cyberbezpieczeństwem odnalazł aż 5 podatności w paczce needrestart i powiązanym module ScanDeos. Jest to narzędzie kompatybilne z menedżerem pakietów apt, a więc znajduje zastosowanie w systemach Debian/Ubuntu i pokrewnych. Służy do wyszukiwania usług (w systemach Linux określanych tradycyjnie jako daemon) wymagających restartu. Taka sytuacja ma miejsce szczególnie po przeprowadzeniu aktualizacji lub instalacji pakietów, która to zmodyfikowała współdzielone biblioteki używane przez dany serwis. Działanie needrestart widać na poniższym zrzucie ekranu:

Działanie needrestart w systemie Ubuntu.

needrestart domyślnie instalowany jest w Ubuntu od wersji 21.04. Znalezione podatności są dość poważne, ponieważ w łatwy sposób umożliwiają podniesienie uprawnień (LPE, Local Privilege Escalation), co jest niebezpieczne zwłaszcza w kontekście zdalnego i nieograniczonego (poprzez VPN czy listę dozwolonych adresów źródłowych) dostępu do serwerów. Zakładając pomyślne użycie podatności, użytkownik standardowy (np. powiązany z kontem hostingowym) mógłby wykonać dowolne polecenie na prawach użytkownika root. Zalecana jest więc aktualizacja przynajmniej dwóch pakietów: needrestart i libmodule-scandeps-perl. O powadze zagrożenia świadczy również wyświetlany w Ubuntu komunikat:

Informacja o podatnościach w needrestart.

Zespół z Qualys na początku znalazł trzy podatności (CVE-2024-48990, CVE-2024-48991, CVE-2024-10224), ale w wyniku ich głębszej analizy okazało się, że są kolejne — CVE-2024-48992 i CVE-2024-11003. Najprostsze do wykorzystania są CVE-2024-48990 i CVE-2024-48992. Polegają one na ustawieniu zmiennych środowiskowych odpowiednio PYTHONPATH lub RUBYLIB wskazujących na katalog kontrolowany przez atakującego (chociażby na poziomie katalogu domowego), który zawiera skrypt odpowiedzialny za wykonanie polecenia jako root.

Możliwe, że wkrótce w Metasploit będzie gotowy exploit (https://github.com/rapid7/metasploit-framework/pull/19676), ale już teraz można znaleźć proste działające przykłady wykorzystania podatności CVE-2024-48990. Jak widać poniżej, użytkownik mgiza nie ma żadnych uprawnień sudo, natomiast po uruchomieniu skryptu setup.py otrzymał dostęp do powłoki bash jako użytkownik root — skrypt zwyczajnie oczekiwał na działanie needrestart, a następnie uruchomił powłokę Bash.

Wykorzystanie podatności w needrestart.

Podatności związane są z dodaniem jednej z kluczowych funkcjonalności needrestart, opisanej w README projektu na GitHub:

Opis funkcji skanowania interpreterów w needrestart.

Wersja 0.8 została opublikowana 27 kwietnia 2014 roku, co oznacza, że opisane błędy istniały w needrestart od ponad dziesięciu lat. Można sprawdzić, jakie konkretnie zmiany wprowadzili w kodzie Perl twórcy tego narzędzia w celu wyeliminowania podatności.

Oprócz aktualizacji oprogramowania istotne jest szeroko rozumiane ograniczenie dostępu do serwerów. Jeśli nie ma możliwości filtrowania adresów źródłowych, dobrym pomysłem (choć bardziej skomplikowanym technicznie) może okazać się zastosowanie chroot, o czym pisałem w tym miejscu. Niestety podatności LPE są wyjątkowo krytyczne i dostępne poprawki najlepiej wdrażać w najszybszym możliwym terminie, o ile oczywiście istnieje realne ryzyko wykorzystania takich luk.

Czy ten artykuł był pomocny?

Oceniono: 0 razy

Picture of Michał Giza

Michał Giza

Administrator systemów Linux i Windows Server. Konfiguruje serwery WWW, bazy danych i inne usługi sieciowe. Wykonuje i automatyzuje wdrożenia aplikacji internetowych.
Picture of Michał Giza

Michał Giza

Administrator systemów Linux i Windows Server. Konfiguruje serwery WWW, bazy danych i inne usługi sieciowe. Wykonuje i automatyzuje wdrożenia aplikacji internetowych.

PODZIEL SIĘ:

guest
0 komentarzy
najstarszy
najnowszy oceniany
Inline Feedbacks
View all comments

Wyrażam zgodę na przesłanie oferty drogą telefoniczną przez IT Partners security sp. z o.o. z siedzibą Katowicach ul.Padereskiego 35 na podany przeze mnie adres e-mail zgodnie z ustawą z dnia 10 maja 2018 roku o ochronie danych osobowych (Dz. Ustaw z 2018, poz. 1000) oraz zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO).

Wyrażam zgodę na przesłanie oferty drogą mailową przez IT Partners security sp. z o.o. z siedzibą Katowicach ul.Padereskiego 35 na podany przeze mnie adres e-mail zgodnie z ustawą z dnia 10 maja 2018 roku o ochronie danych osobowych (Dz. Ustaw z 2018, poz. 1000) oraz zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO).

[ninja_tables id=”27481″]