Poważna usterka bezpieczeństwa w kernelu Linux

Serwis SecurityFocus poinformował, że Duane Griffin usunął z kodu kernela Linux lukę umożliwiającą lokalnemu użytkownikowi rozszerzanie swoich uprawnień do poziomu superużytkownika.

Poważna usterka bezpieczeństwa w kernelu Linux
Źródło zdjęć: © linux.org

27.01.2009 16:33

Problem
Przyczyną problemu jest możliwość wystąpienia błędu warunku granicznego w kodzie odpowiedzialnym za obsługę podsystemu eCryptfs (fs/ecryptfs/inode.c). Wywoływana jest tam odpowiedzialna za odczytanie wartości dowiązania symbolicznego funkcja systemowa readlink(). W przypadku błędu zwraca ona jako wynik wartość -1. jednak z powodu programistycznego niedopatrzenia rezultat nie jest sprawdzany pod tym kątem. Z powodu braku instrukcji warunkowej testującej wystąpienie tego granicznego warunku w dalszej części podprogramu ujemna wartość może zostać użyta jako indeks tablicy. W zależności od rodzaju danych znajdujących się pod mylnie wskazanym miejscem może dojść do awaryjnego zawieszenia pracy jądra lub wykonania umiejętnie wprowadzonego kodu.

Obraz

Podatne na atak wydania to wszystkie z linii 2.6. których numer wersji jest mniejszy niż 2.6.28.1. Systemy niekorzystające z mechanizmu eCryptfs nie są zagrożone.

Rozwiązanie
Problem został rozwiązany w wydaniu 2.6.28.1. w zatwierdzonej zmianie o znaczniku systemu kontroli wersji abf366bf652683be33a356640b53ef04b807442f. W serwisie kernel.org pojawiły się również patche, które można zaaplikować na źródła różnych wydań kerneli z rodziny 2.6.
wydanie internetowe www.heise-online.pl

bezpieczeństwowiadomościlinuks
Wybrane dla Ciebie
Komentarze (0)