Dirty Pipe, jedna z najpoważniejszych luk w Linuksie od lat

Niedawno w sieci pojawiła się wiadomość o odkryciu nowa luka w Linuksie który jest wymieniony jako „High Severity”, która dotyczy wszystkich jąder od wersji 5.8, a także pochodne, w tym Android.

Znany jako Dirty Pipe umożliwia nadpisywanie danych w plikach tylko do odczytu i może prowadzić do eskalacji uprawnień poprzez wstrzyknięcie kodu do procesów „root”.

Chociaż został już załatany w głównym jądrze Linuksa, błąd może zostać wykorzystany w postaci exploita eskalacji uprawnień na wszystkich urządzeniach z jądrem Linuksa w wersji 5.8 lub nowszej.

Oznacza to również, że kilka nowo wydanych smartfonów z Androidem, takich jak Samsung Galaxy S22 i Google Pixel 6, jest również podatnych na ataki, dopóki każde urządzenie nie otrzyma odpowiedniej poprawki jądra od odpowiedniego producenta OEM.

O brudnej rurze

Luka była ujawnione przez badacza bezpieczeństwa Maxa Kellermana i skatalogowany jako (CVE-2022-0847), znalezienie exploita sprawdzającego koncepcję zajęło kilka miesięcy.

Luka umożliwia nieuprzywilejowanemu użytkownikowi wstrzyknięcie i nadpisanie danych w plikach tylko do odczytu, w tym procesów SUID działających jako root. Potoczny pseudonim wydaje się być grą na niesławnym błędzie Brudna krowa oraz mechanizm Linuksa zwany pipeliningiem do przekazywania komunikatów międzyprocesowych, ponieważ ten ostatni jest używany podczas procedury exploita.

Wszystko zaczęło się rok temu od zgłoszenia do pomocy technicznej związanego z uszkodzonymi plikami. Klient skarżył się, że pobranych dzienników dostępu nie można było rozpakować. I rzeczywiście, na jednym z serwerów dziennika znajdował się uszkodzony plik dziennika; może być nieskompresowany, ale gzip zgłosił błąd CRC. Nie mogłem wyjaśnić, dlaczego był uszkodzony, ale założyłem, że nocny proces dzielenia uległ awarii i utworzył uszkodzony plik. Ręcznie poprawiłem CRC pliku, zamknąłem zgłoszenie i wkrótce zapomniałem o problemie.

Po miesiącach analiz badacz w końcu odkrył, że uszkodzone pliki klienta były wynikiem błędu w jądrze Linuksa. Znalazł sposób na wykorzystanie Dirty Pipe, aby umożliwić każdemu, kto ma konto, w tym mniej uprzywilejowane konta „nikt”, dodanie klucza SSH do konta użytkownika root.

Aby wywołać lukę, Kellerman udostępnił swój dowód koncepcji, atakujący musi mieć uprawnienia do odczytu. Ponadto przewijanie nie może znajdować się na granicy strony, pisanie nie może przekraczać granicy strony, a rozmiar pliku nie może być zmieniany.

Aby wykorzystać tę lukę, należy: utworzyć rurę, wypełnić rurę dowolnymi danymi (ustawiając flagę PIPE_BUF_FLAG_CAN_MERGE na wszystkich wpisach w pierścieniu), opróżnić rurę (pozostawiając flagę ustawioną na wszystkich wystąpieniach struktury pipe_buffer w strukturze pierścienia pipe_inode_info), połącz dane z pliku docelowego (otwieranego za pomocą O_RDONLY) do potoku tuż przed offsetem docelowym i zapisz dowolne dane do potoku.

Dirty Pipe wpływa również na każdą wersję Androida opartą na jednej z wrażliwych wersji jądra Linux. Ponieważ system Android jest tak rozdrobniony, modele urządzeń, których dotyczy problem, nie mogą być śledzone w sposób jednolity.

Według Kellermana Google połączył swoją poprawkę z jądrem Androida w zeszłym miesiącu, zaraz po tym, jak został naprawiony wraz z wydaniem jądra Linux w wersjach 5.16.11, 5.15.25 i 5.10.102.

Powiedziawszy to, prawdopodobnie będziemy musieli trochę poczekać, zanim producenci OEM zaczną wprowadzać aktualizacje Androida zawierające poprawkę. Na przykład Pixel 6 firmy Google jest nadal podatny na ataki, ale zaawansowani użytkownicy mogą złagodzić tę wadę, instalując niestandardowe, załatane jądro na rynku wtórnym jako opcję alternatywną.

Twórcy jądra Linuksa wydali poprawki (5.16.11, 5.15.25, 5.10.102) 23 lutego, podczas gdy Google załatało jądro Androida 24 lutego. Kellermann i inni eksperci porównali podatność z CVE-2016-5195 „Brudna krowa” i powiedzieli, że jeszcze łatwiej to wykorzystać.

Wreszcie, jeśli chcesz dowiedzieć się więcej na ten temat, możesz zapoznać się ze szczegółami W poniższym linku.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.