„Linux“ branduolio pažeidžiamumas nuotoliniu būdu išnaudojamas per „Bluetooth“.

„Linux“ branduolyje buvo nustatytas pažeidžiamumas (CVE-2022-42896), kurį galima panaudoti nuotoliniam kodo vykdymui branduolio lygiu organizuoti, siunčiant specialiai sukurtą L2CAP paketą per „Bluetooth“. Be to, buvo nustatyta kita panaši problema (CVE-2022-42895) L2CAP tvarkyklėje, dėl kurios gali nutekėti branduolio atminties turinys paketuose su konfigūracijos informacija. Pirmasis pažeidžiamumas atsirado nuo 2014 m. rugpjūčio mėn. (3.16 branduolys), o antrasis – nuo ​​2011 m. spalio mėn. (3.0 branduolys). Pažeidžiamumas buvo pašalintas Linux branduolio 6.1.0, 6.0.8, 4.9.333, 4.14.299, 4.19.265, 5.4.224, 5.10.154 ir 5.15.78 versijose. Galite sekti platinimo pataisas šiuose puslapiuose: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

Siekiant parodyti galimybę įvykdyti nuotolinę ataką, buvo paskelbti prototipų išnaudojimai, kurie veikia Ubuntu 22.04. Kad galėtų įvykdyti ataką, užpuolikas turi būti „Bluetooth“ diapazone – iš anksto susieti nereikia, tačiau „Bluetooth“ turi būti aktyvus kompiuteryje. Atakai pakanka žinoti aukos įrenginio MAC adresą, kurį galima nustatyti uostydamas arba kai kuriuose įrenginiuose apskaičiuoti pagal Wi-Fi MAC adresą.

Pirmąjį pažeidžiamumą (CVE-2022-42896) sukelia prieiga prie jau atlaisvintos atminties srities (use-after-free) įgyvendinant l2cap_connect ir l2cap_le_connect_req funkcijas – sukūrus kanalą per new_connection atgalinį skambutį, užraktas nebuvo nustatytas. jai, bet buvo nustatytas laikmatis (__set_chan_timer ), pasibaigus skirtajam laikui, iškviečiant funkciją l2cap_chan_timeout ir išvalant kanalą nepatikrinus darbo su kanalu atlikimo l2cap_le_connect* funkcijose.

Numatytasis skirtasis laikas yra 40 sekundžių ir buvo daroma prielaida, kad su tokiu uždelsimu lenktynių sąlygos negali atsirasti, tačiau paaiškėjo, kad dėl kitos SMP tvarkyklės klaidos buvo įmanoma iš karto iškviesti laikmatį ir pasiekti lenktynių būklė. Dėl l2cap_le_connect_req problemos gali nutekėti branduolio atmintis, o l2cap_connect dėl ​​to gali būti perrašytas atminties turinys ir vykdomas jo kodas. Pirmojo tipo ataka gali būti vykdoma naudojant „Bluetooth LE 4.0“ (nuo 2009 m.), antrasis – naudojant „Bluetooth BR/EDR 5.2“ (nuo 2020 m.).

Antrąjį pažeidžiamumą (CVE-2022-42895) sukelia liekamasis atminties nutekėjimas funkcijoje l2cap_parse_conf_req, kurią galima naudoti nuotoliniu būdu gauti informaciją apie nuorodas į branduolio struktūras siunčiant specialiai sukurtas konfigūracijos užklausas. Funkcija l2cap_parse_conf_req naudojo l2cap_conf_efs struktūrą, kuriai skirta atmintis nebuvo iš anksto inicijuota, o manipuliuojant vėliavėle FLAG_EFS_ENABLE buvo galima į paketą įtraukti senus duomenis iš kamino. Problema atsiranda tik sistemose, kuriose branduolys sukurtas naudojant CONFIG_BT_HS parinktį (pagal numatytuosius nustatymus išjungta, bet įjungta kai kuriuose platinimuose, pvz., Ubuntu). Sėkmingai atakai taip pat reikia per valdymo sąsają nustatyti parametrą HCI_HS_ENABLED į true (nenaudojamas pagal numatytuosius nustatymus).

Šaltinis: opennet.ru

Добавить комментарий