Выдалена эксплуатаваная root-уразлівасць ва ўтыліце ping, якая пастаўляецца ва FreeBSD

Ва FreeBSD выяўлена ўразлівасць (CVE-2022-23093) ва ўтыліце ping, уваходнай у базавую пастаўку. Праблема патэнцыйна можа прывесці да выдаленага выканання кода з правамі root пры праверцы пры дапамозе ping вонкавага хаста, падкантрольнага зламысніку. Выпраўленне прапанавана ў абнаўленнях FreeBSD 13.1-RELEASE-p5, 12.4-RC2-p2 і 12.3-RELEASE-p10. Ці схільныя іншыя BSD-сістэмы выяўленай уразлівасці пакуль не ясна (справаздач аб уразлівасці ў NetBSD, DragonFlyBSD і OpenBSD пакуль не з'явілася).

Уразлівасць выклікана перапаўненнем буфера ў кодзе разбору ICMP-паведамленняў, якія прыходзяць у адказ на праверачны запыт. Код адпраўкі і прыёму ICMP-паведамленняў у ping выкарыстоўвае raw-сокеты і выконваецца з падвышанымі прывілеямі (утыліта пастаўляецца са сцягам setuid root). Апрацоўка адказу вырабляецца на баку ping праз рэканструкцыю IP-і ICMP-загалоўкаў пакетаў, якія атрымліваюцца з raw-сокета. Вылучаныя IP- і ICMP-загалоўкі капіююцца функцыяй pr_pack() у буферы, не прымаючы да ўвагі тое, што ў пакеце пасля загалоўка IP могуць прысутнічаць дадатковыя пашыраныя загалоўкі.

Падобныя загалоўкі вылучаюцца з пакета і ўключаюцца ў блок загалоўкаў, але не ўлічваюцца пры разліку памеру буфера. У выпадку, калі хост у адказ на адпраўлены ICMP-запыт верне пакет з дадатковымі загалоўкамі, іх змесціва будзе запісана ў вобласць за мяжой буфера ў стэку. У выніку атакавалы можа перазапісаць да 40 байт дадзеных у стэку, што патэнцыйна дазваляе дамагчыся выкананні свайго кода. Небяспека праблемы змякчае тое, што ў момант праявы памылкі, працэс знаходзіцца ў стане ізаляцыі сістэмных выклікаў (capability mode), што абцяжарвае атрыманне доступу да астатняй сістэмы пасля эксплуатацыі ўразлівасці.

Крыніца: opennet.ru

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