NFsec Logo

Sytuacja wyścigu w implementacji af_packet.c

10/12/2016 w Bezpieczeństwo Brak komentarzy.  (artykuł nr 573, ilość słów: 293)

W październiku Phil Oester odkrył lukę w jądrze Linuksa o nazwie Dirty COW, która mogła zostać wykorzystana przez lokalnego napastnika do podniesienia swoich uprawnień do roli administratora. 28.11.2016 Philip Pettersson znalazł i zgłosił do zespołu bezpieczeństwa jądra kolejny błąd, który był obecny w systemie Linux od pięciu lat (2011). 06.12.2016 luka została publicznie ogłoszona. Błąd polega na możliwości sytuacji wyścigu w pliku net/packet/af_packet.c. Sytuacja ta z kolei prowadzi do błędu typu use-after-free w sposobie w jakim implementacja surowych gniazd w podsystemie sieciowym jądra obsługuje synchronizację podczas tworzenia buforu pierścieniowego TPACKET_V3. UAF głównie odnosi się do próby uzyskania dostępu do pamięci po jej zwolnieniu, co może powodować zawieszenie się programu, czy potencjalnie zakończyć się bezwględnym wykonaniem kodu lub nawet przyznać możliwości jego zdalnego wykonania.

Oznacza to, że lokalny użytkownik mający możliwość otworzenia surowego gniazda (wymagany jest atrybut do wykonywania funkcji jądra – CAP_NET_RAW – umożliwiający wykorzystanie gniazd typu SOCK_RAW oraz PF_PACKET) może wykorzystać wspomnianą lukę do podniesienia swoich uprawnień w systemie. Istnieje już exploit sprawdzony na systemie Ubuntu 14.04 oraz 16.04 (jądro w wersji 4.4.0). Jak wskazuje autor znaleziska w systemie Android uruchomiony jest również proces mediaserver (GID=3004), który ma możliwość tworzenia gniazd typu AF_PACKET i tym samym zdolność do wykorzystania błędu. Osoby używające systemd od wersji v211 mają możliwość tymczasowego załatania usług poprzez wprowadzenie ograniczeń do możliwości nasłuchu usług na konkretnych rodzajach gniazd. Oczywiście najlepszą drogą jest aktualizacja jądra do najnowszego patchsetu zawierającego poprawkę i restart serwera.

Więcej informacji: RedHat, Ubuntu, Debian

Kategorie K a t e g o r i e : Bezpieczeństwo

Tagi T a g i : , ,

Zostaw odpowiedź.

Musisz być zalogowany by móc komentować.