Programiści Linuksa naprawiają paskudną lukę sprzed pół dekady

Programiści Linuksa naprawiają paskudną lukę sprzed pół dekady

Naukowcy twierdzą, że po pięciu latach w popularnym module jądra Linuksa znaleziono możliwy do wykorzystania błąd.

Szczegółowo opisując ustalenia w poście na blogu, badacz Samuel Page z firmy Appgate zajmującej się cyberbezpieczeństwem powiedział, że usterką było przepełnienie bufora stosu, który znajduje się w module sieciowym jądra dla procesu Transparent Intercom.

Strona opisuje TIPC jako mechanizm IPC przeznaczony do komunikacji w ramach klastra. „Topologia klastra jest zarządzana wokół koncepcji węzłów i połączeń między tymi węzłami” — wyjaśnia.

Ataki typu „odmowa usługi” i wykonanie kodu

Komunikacja TIPC przechodzi przez „nośnika”, abstrakcję interfejsu sieciowego TIPC. „Media” to rodzaj mediów, protokół, który obecnie obsługuje Ethernet, Infiniband, UDP/IPv4 i UDP/IPv6.

Luka umożliwia atakującemu udział w atakach typu „odmowa usługi”, a czasem zdalne wykonanie kodu.

„Eksploit jest nieistotny i może prowadzić do odmowy usługi poprzez panikę jądra. W przypadku braku lub obejścia kanarków stosu/KASLR luka w zabezpieczeniach może doprowadzić do przejęcia kontroli nad przepływem za pomocą dowolnego ładunku” — czytamy w blogu.

Osoby korzystające z jądra Linuksa w wersjach od 4.8 do 5.17-rc3 powinny zaktualizować ją do najnowszej wersji, ponieważ są podatne na lukę. Ci, którzy nie mogą natychmiast załatać swoich systemów, powinni wdrożyć konfigurację uniemożliwiającą atakującemu podszycie się pod węzeł w ich klastrach, na przykład za pomocą szyfrowania na poziomie TIPC.

„Luka w zabezpieczeniach polega na tym, że podczas wstępnej kontroli funkcja nie sprawdza, czy member_cnt jest mniejszy niż MAX_MON_DOMAIN, który określa maksymalny rozmiar tablicy Members. Udając węzeł równorzędny i łącząc się z celem, lokalnie lub zdalnie, możemy najpierw wysłać złośliwą rejestrację domeny zawierającą dowolny ładunek; tak długo, jak pola len/member_cnt pasują do kontroli integralności, będzie dobrze odwzorowane na km”, wyjaśnia w poście na blogu.

„Następnie możemy wypchnąć nowszy rekord domeny, który przeciągnie pamięć starego złośliwego rekordu do lokalnej 272-bajtowej struktury tipc_mon_domain & dom_bef, wywołując przepełnienie stosu”.

Page dodaje jednak, że w związku z tą wadą istnieją pewne zastrzeżenia. Atakujący jest ograniczony przez typy nośników TIPC skonfigurowane w docelowym punkcie końcowym. „Lokalnie, jeśli moduł jest załadowany, osoba atakująca może wykorzystać podstawowe łącze sieciowe do skonfigurowania multimediów (to zasługa bl@sty za jego pracę nad CVE-2021-43267). Nie będzie jednak miał uprawnień do wysyłania ramek surowy Ethernet, pozostawiając nośnik UDP jako najbardziej prawdopodobną opcję” – podsumowuje post na blogu.