Grupy badawcze Forescout Research Labs i JSOF Research opublikowały wyniki wspólnego badania bezpieczeństwa różnych realizacji schematu kompresji, stosowanego do pakowania powtarzających się nazw w komunikatach DNS, mDNS, DHCP i IPv6 RA (pakowanie zduplikowanych części domen w komunikatach zawierających wiele nazw). W trakcie przeprowadzonych prac zidentyfikowano 9 podatności, które zostały podsumowane pod nazwą kodową NAME:WRECK.
Problemy zostały zidentyfikowane w FreeBSD, a także w systemach sieciowych IPnet, Nucleus NET i NetX, które znalazły zastosowanie w systemach operacyjnych czasu rzeczywistego VxWorks, Nucleus i ThreadX, używanych w urządzeniach automatyzacji, magazynach, urządzeniach medycznych, awionice, drukarkach oraz elektronice użytkowej. Szacuje się, że na podatności narażonych jest co najmniej 100 milionów urządzeń.
- Podatność w FreeBSD (CVE-2020-7461) umożliwiała zdalne wykonanie własnego kodu poprzez wysłanie atakującemu, znajdującemu się w tej samej sieci lokalnej co ofiara, specjalnie spreparowanego pakietu DHCP, którego przetwarzanie przez podatnego klienta DHCP prowadziło do przepełnienia bufora. Problem łagodził fakt, że proces dhclient, w którym występowała podatność, był wykonywany z obniżonymi uprawnieniami w izolowanym środowisku Capsicum, co wymagało zidentyfikowania kolejnej podatności, aby się z niego wydostać.
Istota błędu występuje w nieprawidłowej weryfikacji parametrów w pakiecie wysyłanym przez serwer DHCP z opcją 119 DHCP, pozwalającą na przekazanie listy 'domain search' do resolvera. Niewłaściwe obliczenie rozmiaru bufora, niezbędnego do pomieszczenia rozpakowanych nazw domen, prowadziło do zapisu kontrolowanej przez atakującego informacji poza przydzielonym buforem. W FreeBSD problem został rozwiązany już we wrześniu ubiegłego roku. Problem może być wykorzystywany tylko przy dostępie do sieci lokalnej.
- Podatność w osadzonym stosie sieciowym IPnet, stosowanym w RTOS VxWorks, potencjalnie pozwala na wykonanie kodu po stronie klienta DNS z powodu błędnego przetwarzania kompresji komunikatów DNS. Jak się okazało, ta podatność została po raz pierwszy zidentyfikowana przez firmę Exodus w 2016 roku, ale nigdy nie została naprawiona. Nowe zapytanie do firmy Wind River również pozostało bez odpowiedzi i urządzenia z IPnet pozostają podatne.
- W stosie TCP/IP Nucleus NET, wspieranym przez firmę Siemens, zidentyfikowano 6 luk, z których dwie mogły prowadzić do zdalnego wykonania kodu, a cztery do wywołania odmowy usługi. Pierwszy poważny problem związany jest z błędem przy dekompresji skompresowanych komunikatów DNS, a drugi z nieprawidłowym analizowaniem etykiet nazw domen. Oba problemy prowadzą do przepełnienia bufora podczas przetwarzania specjalnie sformatowanych odpowiedzi DNS.
Aby wykorzystać luki, atakującemu wystarczy wysłać specjalnie sformatowaną odpowiedź na dowolne legalne zapytanie wysłane z podatnego urządzenia, na przykład poprzez przeprowadzenie ataku MTIM i wstrzyknięcie się w ruch między serwerem DNS a ofiarą. Jeśli atakujący ma dostęp do lokalnej sieci, może uruchomić serwer DNS, próbujący atakować problematyczne urządzenia, wysyłając zapytania mDNS w trybie rozgłoszeniowym.
- Wrażliwość w stosie sieciowym NetX (Azure RTOS NetX), opracowanym dla ThreadX RTOS i otwartym w 2019 roku po przejęciu przez Microsoft, ogranicza się do odmowy usługi. Problem jest spowodowany błędem analizy skompresowanych komunikatów DNS w implementacji resolvera.
Na liście sprawdzonych stosów sieciowych, w których nie znaleziono luk związanych z kompresją powtarzających się danych w komunikatach DNS, wymieniono projekty lwIP, Nut/Net, Zephyr, uC/TCP-IP, FreeRTOS+TCP, OpenThread i FNET. Z czego dwa pierwsze (Nut/Net i lwIP) w ogóle nie wspierają kompresji w komunikatach DNS, a pozostałe realizują tę operację poprawnie. Ponadto zauważono, że ci sami badacze wcześniej wykryli podobne luki w stosach Treck, uIP i PicoTCP.
Źródło: opennet.ru
