Уразлівасць у pppd і lwIP, якая дазваляе выдалена выканаць код з правамі root

У пакеце pppd выяўлена уразлівасць (CVE-2020-8597), якая дазваляе выканаць свой код праз адпраўку спецыяльна аформленых запытаў на аўтэнтыфікацыю да сістэм, якія выкарыстоўваюць пратакол PPP (Point-to-Point Protocol) або PPPoE (PPP over Ethernet). Гэтыя пратаколы звычайна прымяняюцца правайдэрамі для арганізацыі падлучэння праз Ethernet або DSL, а таксама выкарыстоўваюцца ў некаторых VPN (напрыклад, pptpd і openfortivpn). Для праверкі схільнасці сваіх сістэм праблеме падрыхтаваны прататып эксплоіту.

Уразлівасць выклікана перапаўненнем буфера ў рэалізацыі пратакола аўтэнтыфікацыі EAP (Extensible Authentication Protocol). Атака можа быць здзейснена на стадыі да праходжання аўтэнтыфікацыі праз адпраўку пакета з тыпам EAPT_MD5CHAP, улучальным вельмі доўгае імя хаста, не якія змяшчаюцца ў вылучаны буфер. З-за памылкі ў кодзе праверкі памеру поля rhostname, атакавалы можа перазапісаць дадзеныя за межамі буфера ў стэку і дамагчыся выдаленага выканання свайго кода з правамі root. Уразлівасць выяўляецца на боку сервера і кліента, г.зн. можа быць атакаваны не толькі сервер, але і кліент, які спрабуе падлучыцца да сервера, падкантрольнаму атакаваламу (напрыклад, зламыснік можа спачатку ўзламаць праз уразлівасць сервер, а потым пачаць дзівіць якія падключаюцца кліентаў).

Праблема закранае версіі pppd з 2.4.2 па 2.4.8 уключна і ўхіленая ў форме патча. Уразлівасць таксама закранае стэк lwIP, але ў канфігурацыі па змаўчанні ў lwIP падтрымка EAP не ўключана.

Статус ухілення праблемы ў дыстрыбутывах можна паглядзець на дадзеных старонках: Debian, Ubuntu, RHEL, Мяккая фетравы капялюш, SUSE, OpenWRT, арка, NetBSD. У RHEL, OpenWRT і SUSE пакет pppd сабраны з уключэннем абароны "Stack Smashing Protection" (рэжым "-fstack-protector" у gcc), што абмяжоўвае эксплуатацыю крахам. Акрамя дыстрыбутываў уразлівасць таксама пацверджана ў некаторых прадуктах Cisco (CallManager), TP-LINK і Synology (DiskStation Manager, VisualStation VS960HD і Router Manager), выкарыстоўвалых код pppd ці lwIP.

Крыніца: opennet.ru

Дадаць каментар