Luka w pakiecie pppd została właśnie ujawniona opinii publicznej (CVE-2020-8597) co poważnie wpływa na niektóre usługi VPN, połączenia DSL, a także Ethernet ponieważ znaleziony błąd pozwolił na wykonanie kodu wysyłającego specjalnie zaprojektowane żądania uwierzytelnienia do systemów, które używają PPP (Point-to-Point Protocol) lub PPPoE (PPP over Ethernet).
I to jest to, jak wspomnieliśmy, różni dostawcy często używają tych protokołów do nawiązywania połączeń przez Ethernet lub DSL i są również używane w niektórych sieciach VPN, np. pptpd i openfortivpn.
Aby przetestować podatność systemów na problem, przygotowano prototyp exploita, które już jest dostępny dla ogółu społeczeństwa.
O orzeczeniu
Luka jest spowodowana przepełnieniem bufora w implementacji Extensible Authentication Protocol (EAP).
Dodatkowy błąd logiczny powoduje, że funkcja eap_input () nie sprawdza, czy EAP został wynegocjowany podczas fazy protokołu kontroli linii (LCP).
Dzięki temu nieuwierzytelniona osoba atakująca może wysłać pakiet EAP nawet jeśli ppp odrzucił negocjację uwierzytelnienia z powodu braku obsługi EAP lub z powodu niedopasowania wstępnie udostępnionego hasła uzgodnionego w fazie LCP.
Podatny kod pppd w eap_input będzie nadal przetwarzał pakiet EAP i wyzwoli przepełnienie bufora stosu.
Te niezweryfikowane dane o nieznanym rozmiarze mogą zostać użyte do uszkodzenia pamięci systemu docelowego. Pppd często działa z wysokimi uprawnieniami (system lub root) i działa w połączeniu ze sterownikami jądra. Dzięki temu osoba atakująca może potencjalnie uruchomić dowolny kod z uprawnieniami administratora lub na poziomie systemu.
Z tym atak można przeprowadzić na etapie przed uwierzytelnieniem Pomiń, wysyłając pakiet typu EAPT_MD5CHAP, zawierający bardzo długą nazwę hosta, która nie mieści się w przydzielonym buforze.
Ze względu na błąd w kodzie sprawdzania rozmiaru pola rhostname, atakujący może nadpisać dane poza buforem na stosie i osiągnij zdalne wykonanie kodu z uprawnieniami roota.
Luka ujawnia się po stronie serwera i klientaOznacza to, że atakowany może być nie tylko serwer, ale także klient, który próbuje połączyć się z serwerem kontrolowanym przez atakującego (np. atakujący może najpierw zhakować serwer przez lukę, a następnie rozpocząć atakowanie klientów, którzy się łączą ).
Słaby punkt wpływa również na stos lwIP, ale obsługa EAP nie jest włączona w ustawieniach domyślnych w lwIP.
Wersje i rozwiązania, których dotyczy problem
W związku z tym wykryto usterkę dotyczy pppd w wersjach od 2.4.2 do 2.4.8 włącznie i jest rozwiązany w formie poprawki. Niektórzy z was mogą być świadomi, że ujawnienie błędów opinii publicznej następuje długo po ich wykryciu i rozwiązaniu problemu. I chociaż zajmuje to cały proces, nadal istnieje część użytkownika, która musi wykonać odpowiednią aktualizację.
Status rozwiązania problemu można sprawdzić w raportach głównych dystrybucji Linuksa.
Można to zobaczyć w te strony: Debian, Ubuntu, RHEL, fedora, SUSE, OpenWRT, łuk, NetBSD.
W RHEL, OpenWRT i SUSE, pakiet pppd jest kompilowany z włączeniem "Stack Smashing Protection" ("-fstack-ochrona»W gcc), co ogranicza działanie zamka.
Oprócz dystrybucji luka jest również potwierdzona w niektórych produktach Cisco (CallManager), TP-LINK i Synology (DiskStation Manager, VisualStation VS960HD i Router Manager) przy użyciu kodu pppd lub lwIP.
W związku z tym łatka jest już dostępna w repozytoriach większości dystrybucji Linuksa, a niektóre już to zaimplementowały, oferując aktualizację pakietu.
Jeśli chcesz dowiedzieć się więcej na ten temat o znalezionej usterce możesz sprawdzić szczegóły i więcej informacji W poniższym linku.