Уразлівасці ў Realtek SDK прывялі да праблем у прыладах 65 вытворцаў

У кампанентах Realtek SDK, які выкарыстоўваецца рознымі вытворцамі бесправадных прылад у сваіх прашыўках, выяўлены чатыры ўразлівасці, якія дазваляюць неаўтэнтыфікаванаму атакаваламу выдалена выканаць код на прыладзе з падвышанымі прывілеямі. Па папярэдняй адзнацы, праблемы закранаюць як мінімум 200 мадэляў прылад ад 65 розных пастаўшчыкоў, уключаючы розныя мадэлі бесправадных маршрутызатараў Asus, A-Link, Beeline, Belkin, Buffalo, D-Link, Edison, Huawei, LG, Logitec, MT-Link, Netgear , Realtek, Smartlink, UPVEL, ZTE і Zyxel.

Праблема ахоплівае розныя класы бесправадных прылад на базе SoC RTL8xxx, ад бесправадных маршрутызатараў і ўзмацняльнікаў Wi-Fi, да IP-камер і разумных прылад для кіравання асвятленнем. У прыладах на базе чыпаў RTL8xxx выкарыстоўваецца архітэктура, якая разумее ўсталёўку двух SoC - на першым усталёўваецца прашыўка вытворцы на базе Linux, а на другім выконваецца асобнае зрэзанае Linux-асяроддзе з рэалізацыяй функцый кропкі доступу. Начынне другога асяроддзя грунтуецца на тыпавых кампанентах, якія прадстаўляюцца кампаніяй Realtek у SDK. Указаныя кампаненты ў тым ліку апрацоўваюць дадзеныя, якія паступаюць у выніку адпраўкі знешніх запытаў.

Уразлівасці закранаюць прадукты, у якіх выкарыстоўваюцца Realtek SDK v2.x, Realtek "Jungle" SDK v3.0-3.4 і Realtek "Luna" SDK да версіі 1.3.2. Выпраўленне ўжо выпушчана ў абнаўленні Realtek "Luna" SDK 1.3.2a, а таксама рыхтуюцца да публікацыі патчы для Realtek "Jungle" SDK. Для Realtek SDK 2.x выпраўленні выпускаць не плануецца, бо суправаджэнне дадзенай галінкі ўжо спынена. Для ўсіх уразлівасцяў прадстаўленыя працоўныя прататыпы эксплоітаў, якія дазваляюць дамагчыся выкананні свайго кода на прыладзе.

Выяўленыя ўразлівасці (першым двум прысвоены ўзровень небяспекі 8.1, а астатнім - 9.8):

  • CVE-2021-35392 – перапаўненне буфера ў працэсах mini_upnpd і wscd, якія рэалізуюць функцыянальнасць "WiFi Simple Config" (mini_upnpd займаецца апрацоўкай пакетаў SSDP, а wscd акрамя падтрымкі SSDP займаецца абслугоўваннем запытаў UPnP на базе пратаколу HTTP). Атакуючы можа дамагчыся выкананні свайго кода праз адпраўку адмыслова аформленых UPnP-запытаў «SUBSCRIBE» са занадта вялікім значэннем нумара порта ў поле «Callback». SUBSCRIBE /upnp/event/WFAWLANConfig1 HTTP/1.1 Host: 192.168.100.254:52881 Callback: NT: upnp:event
  • CVE-2021-35393 - уразлівасць у апрацоўшчыках "WiFi Simple Config", якая праяўляецца пры выкарыстанні пратакола SSDP (выкарыстоўвае UDP і фармат запытаў, падобны на HTTP). Праблема выклікана выкарыстаннем фіксаванага буфера, памерам 512 байт, пры апрацоўцы параметра "ST: upnp" у паведамленнях M-SEARCH, якія адпраўляюцца кліентамі для вызначэння наяўнасці сэрвісаў у сетцы.
  • CVE-2021-35394 – уразлівасць падчас MP Daemon, які адказвае за выкананне аперацый дыягностыкі (ping, traceroute). Праблема дазваляе ажыццявіць падстаноўку сваіх каманд з-за недастатковай праверкі аргументаў пры выкананні знешніх утыліт.
  • CVE-2021-35395 – серыя ўразлівасцяў у web-інтэрфейсах на базе http-сервераў /bin/webs і /bin/boa. У абодвух серверах выяўлены тыпавыя ўразлівасці, выкліканыя адсутнасцю праверкі аргументаў перад запускам вонкавых утыліт функцыяй system(). Адрозненні зводзяцца толькі да выкарыстання для нападу розных API. Абодва апрацоўшчыка не ўключалі абарону ад нападу CSRF і тэхнікі "DNS rebinding", якая дазваляе арганізаваць адпраўку запытаў з вонкавай сеткі пры абмежаванні доступу да інтэрфейсу толькі для ўнутранай сеткі. У працэсах таксама па змаўчанні выкарыстоўваўся наканаваны ўліковы запіс supervisor/supervisor. Акрамя таго, у апрацоўшчыках выяўлена некалькі перапаўненняў стэка, якія выяўляюцца пры адпраўцы аргументаў занадта вялікага памеру. POST /goform/formWsc HTTP/1.1 Host: 192.168.100.254 Content-Length: 129 Content-Type: application/x-www-form-urlencoded submit-url=%2Fwlwps.asp&resetUnCfg=0&peer ;&setPIN=Start+PIN&configVxd=off&resetRptUnCfg=12345678&peerRptPin=
  • Дадаткова адзначаецца выяўленне яшчэ некалькіх уразлівасцяў падчас UDPServer. Як аказалася адна з праблем ужо была выяўлена іншымі даследчыкамі яшчэ ў 2015 годзе, але не была цалкам выпраўлена. Праблема выклікана адсутнасцю належнай праверкі аргументаў, якія перадаюцца ў функцыю system() і можа быць эксплуатаваная адпраўкай на сеткавы порт 9034 радкі выгляду 'orf;ls'. Акрамя таго, у UDPServer выяўлена перапаўненне буфера з-за небяспечнага выкарыстання функцыі sprintf, якое таксама патэнцыйна можа прымяняцца для здзяйснення нападаў.

Крыніца: opennet.ru

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