Dobësitë në kernel Linux të shfrytëzuara nga distanca nëpërmjet Bluetooth

Një dobësi (CVE-2022-42896) është identifikuar në kernelin Linux, i cili potencialisht mund të përdoret për të organizuar ekzekutimin e kodit në distancë në nivelin e kernelit duke dërguar një paketë L2CAP të projektuar posaçërisht nëpërmjet Bluetooth. Për më tepër, një problem tjetër i ngjashëm është identifikuar (CVE-2022-42895) në mbajtësin L2CAP, i cili mund të çojë në rrjedhje të përmbajtjes së kujtesës së kernelit në paketat me informacion konfigurimi. Dobësia e parë është shfaqur që nga gushti 2014 (kernel 3.16), dhe e dyta që nga tetori 2011 (kernel 3.0). Dobësitë janë adresuar në lëshimet e kernelit Linux 6.1.0, 6.0.8, 4.9.333, 4.14.299, 4.19.265, 5.4.224, 5.10.154 dhe 5.15.78. Mund të gjurmoni rregullimet në shpërndarje në faqet e mëposhtme: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

Për të demonstruar mundësinë e kryerjes së një sulmi në distancë, janë botuar eksploite prototipe që funksionojnë në Ubuntu 22.04. Për të kryer një sulm, sulmuesi duhet të jetë brenda rrezes së Bluetooth - çiftimi paraprak nuk kërkohet, por Bluetooth duhet të jetë aktiv në kompjuter. Për një sulm, mjafton të dini adresën MAC të pajisjes së viktimës, e cila mund të përcaktohet duke nuhatur ose, në disa pajisje, të llogaritet bazuar në adresën MAC të Wi-Fi.

Dobësia e parë (CVE-2022-42896) është shkaktuar nga qasja në një zonë të memories tashmë të çliruar (përdorimi-pas-free) në zbatimin e funksioneve l2cap_connect dhe l2cap_le_connect_req - pas krijimit të një kanali përmes kthimit të thirrjes new_connection, një bllokim nuk u vendos. për të, por u vendos një kohëmatës (__set_chan_timer ), pas skadimit të afatit, duke thirrur funksionin l2cap_chan_timeout dhe duke pastruar kanalin pa kontrolluar përfundimin e punës me kanalin në funksionet l2cap_le_connect*.

Koha e paracaktuar është 40 sekonda dhe supozohej se një kusht gare nuk mund të ndodhte me një vonesë të tillë, por doli që për shkak të një gabimi tjetër në mbajtësin SMP, ishte e mundur të arrihej një thirrje e menjëhershme në kohëmatës dhe të arrihej një gjendja e garës. Një problem në l2cap_le_connect_req mund të çojë në një rrjedhje të kujtesës së kernelit, dhe në l2cap_connect mund të çojë në mbishkrimin e përmbajtjes së kujtesës dhe ekzekutimin e kodit të saj. Lloji i parë i sulmit mund të kryhet duke përdorur Bluetooth LE 4.0 (që nga viti 2009), i dyti kur përdorni Bluetooth BR/EDR 5.2 (që nga viti 2020).

Dobësia e dytë (CVE-2022-42895) shkaktohet nga një rrjedhje e memories së mbetur në funksionin l2cap_parse_conf_req, i cili mund të përdoret për të marrë informacione në distancë rreth treguesve në strukturat e kernelit duke dërguar kërkesa konfigurimi të krijuara posaçërisht. Funksioni l2cap_parse_conf_req përdori strukturën l2cap_conf_efs, për të cilën memoria e alokuar nuk ishte inicializuar paraprakisht dhe duke manipuluar flamurin FLAG_EFS_ENABLE ishte e mundur që të përfshiheshin të dhënat e vjetra nga staku në paketë. Problemi shfaqet vetëm në sistemet ku kerneli është ndërtuar me opsionin CONFIG_BT_HS (i çaktivizuar si parazgjedhje, por i aktivizuar në disa shpërndarje, si Ubuntu). Një sulm i suksesshëm kërkon gjithashtu vendosjen e parametrit HCI_HS_ENABLED nëpërmjet ndërfaqes së menaxhimit në true (nuk përdoret si parazgjedhje).

Burimi: opennet.ru

Shto një koment