Bluetoothi ​​kaudu eemalt ära kasutatud Linuxi tuuma haavatavused

Linuxi tuumas on tuvastatud haavatavus (CVE-2022-42896), mida saab potentsiaalselt kasutada koodi kaugkäitamise korraldamiseks kerneli tasemel, saates Bluetoothi ​​kaudu spetsiaalselt loodud L2CAP-paketi. Lisaks on L2022CAP-käsitlejas tuvastatud veel üks sarnane probleem (CVE-42895-2), mis võib põhjustada konfiguratsiooniteabega pakettide tuumamälu sisu lekkimist. Esimene haavatavus on ilmunud alates augustist 2014 (tuum 3.16) ja teine ​​alates oktoobrist 2011 (kernel 3.0). Haavatavused on kõrvaldatud Linuxi kerneli versioonides 6.1.0, 6.0.8, 4.9.333, 4.14.299, 4.19.265, 5.4.224, 5.10.154 ja 5.15.78. Distributsioonide parandusi saate jälgida järgmistel lehtedel: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

Kaugrünnaku võimaluse demonstreerimiseks on avaldatud prototüübi ärakasutamine, mis töötab Ubuntu 22.04 peal. Rünnaku läbiviimiseks peab ründaja olema Bluetoothi ​​levialas – eelsidumine pole vajalik, kuid Bluetooth peab arvutis aktiivne olema. Rünnakuks piisab ohvri seadme MAC-aadressi teadmisest, mida saab määrata nuusutamise teel või mõnel seadmel Wi-Fi MAC-aadressi põhjal arvutada.

Esimese haavatavuse (CVE-2022-42896) põhjustab funktsioonide l2cap_connect ja l2cap_le_connect_req juurutamine juba vabastatud mälualale (use-after-free) – pärast kanali loomist tagasihelistamisfunktsiooni new_connection kaudu lukku ei seatud selle jaoks, kuid taimer (__set_chan_timer ) oli seatud ajalõpu lõppemisel, mis kutsub välja funktsiooni l2cap_chan_timeout ja tühjendab kanali, kontrollimata funktsioonide l2cap_le_connect* kanaliga töö lõpetamist.

Vaikimisi on aegumisaeg 40 sekundit ja eeldati, et sellise viivitusega võistlusseisund tekkida ei saa, kuid selgus, et järjekordse vea tõttu SMP-käitlejas oli võimalik saavutada taimerile kohene kõne ja saavutada rassi seisukord. Probleem failis l2cap_le_connect_req võib põhjustada kerneli mälulekke ja l2cap_connectis võib see põhjustada mälu sisu ülekirjutamist ja selle koodi käivitamist. Esimest tüüpi rünnakut saab läbi viia Bluetooth LE 4.0 abil (alates 2009. aastast), teist tüüpi Bluetooth BR/EDR 5.2 abil (alates 2020. aastast).

Teise haavatavuse (CVE-2022-42895) põhjustab funktsiooni l2cap_parse_conf_req jääkmälu leke, mida saab kasutada kaugjuhtimisega kerneli struktuuridele osutavate viidete kohta teabe hankimiseks, saates spetsiaalselt koostatud konfiguratsioonipäringuid. Funktsioon l2cap_parse_conf_req kasutas struktuuri l2cap_conf_efs, mille jaoks eraldatud mälu ei olnud eelinitsialiseeritud ning lipuga FLAG_EFS_ENABLE manipuleerides sai paketti kaasata vanu andmeid pinust. Probleem ilmneb ainult süsteemides, kus kernel on ehitatud valikuga CONFIG_BT_HS (vaikimisi keelatud, kuid mõnel distributsioonil (nt Ubuntu) lubatud). Edukas rünnak nõuab ka parameetri HCI_HS_ENABLED määramist haldusliidese kaudu tõeseks (vaikimisi ei kasutata).

Allikas: opennet.ru

Lisa kommentaar