V balíčku pppd (), která umožňuje spouštění vlastního kódu prostřednictvím odesílání speciálně upravených autentizačních požadavků do systémů využívajících protokol PPP (Point-to-Point Protocol) nebo PPPoE (PPP over Ethernet). Tyto protokoly jsou běžně využívány poskytovateli k zajištění připojení přes Ethernet nebo DSL, a také se používají v některých VPN (například pptpd a ). Pro ověření zranitelnosti svých systémů prototyp exploit.
Zranitelnost je způsobena přetečením bufferu v implementaci autentizačního protokolu EAP (Extensible Authentication Protocol). Útok může být proveden již ve fázi před autentizací odesláním paketu s typem EAPT_MD5CHAP, který obsahuje velmi dlouhé jméno hostitele, které se nevejde do vyhrazeného bufferu. V důsledku chyby v kontrole velikosti pole rhostname může útočník přepsat data za hranice bufferu na zásobníku a dosáhnout vzdáleného spuštění svého kódu s právy root. Zranitelnost se projevuje na straně serveru a klienta, tj. může být napadán nejen server, ale i klient, který se pokouší připojit k serveru kontrolovanému útočníkem (například útočník může nejprve kompromitovat server prostřednictvím zranitelnosti a poté začít napadat připojující se klienty).
Problém se týká verzí od 2.4.2 do 2.4.8 včetně a byl odstraněn ve formě . Zranitelnost se také zásobník , ale v výchozí konfiguraci v lwIP není podpora EAP povolena.
Stav odstranění problému v distribucích lze zjistit na následujících stránkách: , , , , , , , . V RHEL, OpenWRT a SUSE je balíček pppd zkompilován s povolenou ochranou „Stack Smashing Protection“ (režim „-fstack-protector“ v gcc), což omezuje možnost zneužití pádem. Kromě distribucí byla zranitelnost také potvrzena v některých produktech (CallManager), a Synology (DiskStation Manager, VisualStation VS960HD a Router Manager), které používají kód pppd nebo lwIP.
Zdroj: opennet.ru
