Уразлівасці ва FreeBSD, IPnet і Nucleus NET, злучаныя з памылкамі пры рэалізацыі сціску ў DNS

Навукова-даследчыя групы Forescout Research Labs і JSOF Research апублікавалі вынікі сумеснага даследавання бяспекі розных рэалізацый схемы сціску, ужывальнай для пакавання паўтаральных імёнаў у паведамленнях DNS, mDNS, DHCP і IPv6 RA (упакоўка дублюючых частак даменаў у паведамленнях, улучальных некалькі ім. Падчас праведзенай працы было выяўлена 9 уразлівасцяў, якія абагульнены пад кодавым імем NAME: WRECK.

Праблемы выяўлены ва FreeBSD, а таксама ў сеткавых падсістэмах IPnet, Nucleus NET і NetX, атрымалых распаўсюджванне ў аперацыйных сістэмах рэальнага часу VxWorks, Nucleus і ThreadX, ужывальных у прыладах аўтаматызацыі, сховішчах, медыцынскіх прыборах, авіёніцы, друкарках і спажывецкай электроніцы. Мяркуецца, што ўразлівасцям схільна як мінімум 100 мільёнаў прылад.

  • Уразлівасць ва FreeBSD (CVE-2020-7461) дазваляла арганізаваць выкананне свайго кода праз адпраўку атакавалым, змешчаным у адной лакальнай сетцы з ахвярай, адмыслова аформленага DHCP-пакета, апрацоўка якога ўразлівым DHCP-кліентам прыводзіла да перапаўнення буфера. Праблему змякчала тое, што працэс dhclient, у якім прысутнічае ўразлівасць, выконваўся са скінутымі прывілеямі ў ізаляваным асяроддзі Capsicum, для выйсця з якога патрабавалася выяўленне яшчэ адной уразлівасці.

    Сутнасць памылкі ў некарэктнай праверцы параметраў, ва які вяртаецца DHCP-серверам пакеце c 119-опцыяй DHCP, якая дазваляе перадаць спіс «domain search» для рэзалвера. Няправільны разлік памеру буфера, неабходнага для размяшчэння распакаваных даменных імёнаў, прыводзіў да запісу кантраляванай атакавалым інфармацыі за межы вылучанага буфера. Ва FreeBSD праблема ўхіленая яшчэ ў верасні мінулага гады. Праблема можа быць эксплуатаваная толькі пры наяўнасці доступу да лакальнай сеткі.

  • Уразлівасць ва ўбудаваным сеткавым стэку IPnet, ужывальным у RTOS VxWorks, дазваляе патэнцыйна выканаць код на боку DNS-кліента з-за няслушнай апрацоўкі сціску DNS-паведамленняў. Як аказалася, упершыню дадзеная ўразлівасць была выяўлена кампаній Exodus яшчэ ў 2016 годзе, але так і не была выпраўлена. Новы запыт у кампанію Wind River таксама застаўся без адказу і прылады з IPnet застаюцца ўразлівыя.
  • У TCP/IP стэку Nucleus NET, які падтрымліваецца кампаніяй Siemens, выяўлена 6 уразлівасцяў, з якіх дзве маглі прывесці да выдаленага выканання кода, а чатыры да ініцыявання адмовы ў абслугоўванні. Першая небяспечная праблема злучана з памылкай пры распакаванні сціснутых паведамленняў DNS, а другая c некарэктным разборам пазнак даменных імёнаў. Абедзве праблемы прыводзяць да перапаўнення буфера пры апрацоўцы спецыяльна аформленых адказаў DNS.

    Для эксплуатацыі ўразлівасцяў атакаваламу досыць адправіць адмыслова аформлены адказ на любы легітымны запыт, адпраўлены з уразлівай прылады, напрыклад, праз правядзенне MTIM-напады і ўкліньванне ў трафік паміж DNS-серверам і ахвярай. Калі атакавалы мае доступ да лакальнай сеткі, то ён можа запусціць DNS-сервер, які спрабуе атакаваць праблемныя прылады праз рассыланне запытаў mDNS у шырокавяшчальным рэжыме.

  • Уразлівасць у сеткавым стэку NetX (Azure RTOS NetX), распрацаваным для ThreadX RTOS і адкрытага ў 2019 годзе пасля пераходу ў рукі Microsoft, абмежавалася адмовай у абслугоўванні. Праблема выклікана памылкай разбору сціснутых паведамленняў DNS у рэалізацыі рэзалвера.

З правераных сеткавых стэкаў, у якіх не быдла знойдзена ўразлівасцяў, злучаных са сціскам паўтаральных дадзеных у DNS-паведамленнях, названыя праекты lwIP, Nut/Net, Zephyr, uC/TCP-IP, uC/TCP-IP, FreeRTOS+TCP, OpenThread і FNET. Пры гэтым першыя два (Nut/Net і lwIP) увогуле не падтрымліваюць сціск у DNS-паведамленнях, а астатнія рэалізуюць дадзеную аперацыю без памылак. Акрамя таго, адзначаецца, што раней тыя ж даследнікі ўжо выяўлялі падобныя ўразлівасці ў стэках Treck, uIP і PicoTCP.

Крыніца: opennet.ru

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