В пакета pppd (), позволяваща изпълнение на собствен код чрез изпращане на специално форматирани искания за удостоверяване към системи, използващи протокол PPP (Point-to-Point Protocol) или PPPoE (PPP over Ethernet). Тези протоколи обикновено се използват от доставчиците за свързване чрез Ethernet или DSL и са също използвани в някои VPN (например, pptpd и ). За проверка на подвержеността на своите системи към проблема прототип на експлоита.
Уязвимостта е предизвикана от препълване на буфера в реализацията на протокола за удостоверяване EAP (Extensible Authentication Protocol). Атаката може да бъде извършена на етапа преди удостоверяването чрез изпращане на пакет с тип EAPT_MD5CHAP, включващ много дълго име на хоста, което не се побира в заделения буфер. Поради грешка в кода за проверка на размера на полето rhostname, атакуващият може да презапише данни извън буфера в стека и да постигне дистанционно изпълнение на своя код с права root. Уязвимостта се проявява както на страната на сървъра, така и на клиента, т.е. може да бъде атакуван не само сървърът, но и клиентът, опитващ се да се свърже със сървър, контролирани от атакуващия (например, злонамереното лице може първо да хакне сървъра чрез уязвимост и след това да започне да атакува свързващите се клиенти).
Проблемът засяга версиите от 2.4.2 до 2.4.8 включително и е отстранен във формата . Уязвимостта също така стек , но по подразбиране в lwIP поддръжката на EAP не е включена.
Статусът на отстраняване на проблема в дистрибутивите може да бъде видян на следните страници: , , , , , , , . В RHEL, OpenWRT и SUSE пакетът pppd е компилиран с включена защита „Stack Smashing Protection“ (режим „-fstack-protector“ в gcc), което ограничава експлоатацията с крах. Освен в дистрибутивите, уязвимостта също е потвърдена в някои продукти (CallManager), и Synology (DiskStation Manager, VisualStation VS960HD и Router Manager), използващи кода на pppd или lwIP.
Източник: opennet.ru
