Ranljivosti v gonilnikih za čipe Broadcom WiFi, ki vam omogočajo napad na sistem na daljavo

V gonilnikih za brezžične čipe Broadcom razkrila štiri ranljivosti. V najpreprostejšem primeru se lahko ranljivosti uporabijo za oddaljeno povzročitev zavrnitve storitve, vendar ni mogoče izključiti scenarijev, v katerih je mogoče razviti izkoriščanja, ki nepreverjenemu napadalcu omogočijo izvajanje kode s privilegiji jedra Linuxa s pošiljanjem posebej oblikovanih paketov.

Težave so bile ugotovljene z obratnim inženiringom vdelane programske opreme Broadcom. Prizadeti čipi se pogosto uporabljajo v prenosnikih, pametnih telefonih in različnih potrošniških napravah, od pametnih televizorjev do naprav interneta stvari. Zlasti čipi Broadcom se uporabljajo v pametnih telefonih proizvajalcev, kot so Apple, Samsumg in Huawei. Omeniti velja, da je bil Broadcom obveščen o ranljivostih že septembra 2018, vendar je trajalo približno 7 mesecev, da je v sodelovanju s proizvajalci opreme izdal popravke.

Dve ranljivosti vplivata na notranjo vdelano programsko opremo in potencialno omogočata izvajanje kode v okolju operacijskega sistema, ki se uporablja v čipih Broadcom, kar omogoča napad na okolja, ki ne uporabljajo Linuxa (npr. potrjena je možnost napada na naprave Apple CVE-2019-8564). Naj spomnimo, da so nekateri Wi-Fi čipi Broadcom specializirani procesor (ARM Cortex R4 ali M3), ki poganja podoben operacijski sistem z implementacijami njegovega brezžičnega sklada 802.11 (FullMAC). V takih čipih gonilnik zagotavlja interakcijo glavnega sistema z vdelano programsko opremo čipa Wi-Fi. Za pridobitev popolnega nadzora nad glavnim sistemom, potem ko je bil FullMAC ogrožen, je predlagana uporaba dodatnih ranljivosti ali, na nekaterih čipih, izkoriščanje polnega dostopa do sistemskega pomnilnika. V čipih s SoftMAC je brezžični sklad 802.11 implementiran na strani gonilnika in se izvaja s pomočjo sistemske CPE.

Ranljivosti v gonilnikih za čipe Broadcom WiFi, ki vam omogočajo napad na sistem na daljavo

Ranljivosti gonilnikov se pojavljajo tako v lastniškem gonilniku wl (SoftMAC in FullMAC) kot v odprtokodnem brcmfmac (FullMAC). V gonilniku wl sta bili odkriti dve prekoračitvi medpomnilnika, ki sta bili izkoriščeni, ko dostopna točka med postopkom pogajanja o povezavi posreduje posebej oblikovana sporočila EAPOL (napad se lahko izvede pri povezovanju z zlonamerno dostopno točko). V primeru čipa s SoftMAC ranljivosti vodijo v ogrožanje sistemskega jedra, v primeru FullMAC pa se koda lahko izvede na strani vdelane programske opreme. brcmfmac vsebuje prekoračitev medpomnilnika in napako pri preverjanju okvirja, ki je bila izkoriščena pri pošiljanju kontrolnih okvirjev. Težave z gonilnikom brcmfmac v jedru Linuxa so bili odpraviti februarja.

Ugotovljene ranljivosti:

  • CVE-2019-9503 - nepravilno vedenje gonilnika brcmfmac pri obdelavi nadzornih okvirjev, ki se uporabljajo za interakcijo z vdelano programsko opremo. Če okvir z dogodkom vdelane programske opreme prihaja iz zunanjega vira, ga gonilnik zavrže, če pa je dogodek prejet prek notranjega vodila, okvir preskoči. Težava je v tem, da se dogodki iz naprav, ki uporabljajo USB, prenašajo prek notranjega vodila, kar napadalcem omogoča uspešen prenos nadzornih okvirjev vdelane programske opreme pri uporabi brezžičnih adapterjev z vmesnikom USB;
  • CVE-2019-9500 – Ko je omogočena funkcija »Wake-up on Wireless LAN«, je možno povzročiti prelivanje kopice v gonilniku brcmfmac (funkcija brcmf_wowl_nd_results) s pošiljanjem posebej spremenjenega nadzornega okvirja. To ranljivost je mogoče uporabiti za organizacijo izvajanja kode v glavnem sistemu, potem ko je bil čip ogrožen, ali v kombinaciji z ranljivostjo CVE-2019-9503 za obhod preverjanj v primeru oddaljenega pošiljanja nadzornega okvirja;
  • CVE-2019-9501 - prekoračitev medpomnilnika v gonilniku wl (funkcija wlc_wpa_sup_eapol), ki se pojavi pri obdelavi sporočil, katerih vsebina polja s podatki o proizvajalcu presega 32 bajtov;
  • CVE-2019-9502 – Do prekoračitve medpomnilnika v gonilniku wl (funkcija wlc_wpa_plumb_gtk) pride pri obdelavi sporočil, katerih vsebina polja s podatki proizvajalca presega 164 bajtov.

Vir: opennet.ru

Dodaj komentar