Lajmi u bë i ditur së fundmiDy dobësi u identifikuan në kernelin Linux (tashmë e kataloguar nën CVE-2022-42896), e cila potencialisht mund të përdoret për të orkestruar ekzekutimin e kodit në distancë në nivel kernel duke dërguar një paketë L2CAP të krijuar posaçërisht përmes Bluetooth.
Përmendet se cenueshmëria e parë (CVE-2022-42896) ndodh kur hyni në një zonë memorie tashmë të liruar (përdorim-pas-falas) në zbatimin e funksioneve l2cap_connect dhe l2cap_le_connect_req.
Dështimi shfrytëzohet pas krijimit të një kanali nëpërmjet kthimit të telefonatës thirrje lidhje e re, i cili nuk bllokon konfigurimin për të, por vendos një kohëmatës (__set_chan_timer), pas një kohe, duke thirrur funksionin l2cap_chan_timeout dhe pastrimi i kanalit pa kontrolluar përfundimin e punës me kanalin në funksione l2cap_le_connect*.
Koha e parazgjedhur është 40 sekonda dhe supozohej se një gjendje gare nuk mund të ndodhte me kaq vonesë, por doli që për shkak të një defekti tjetër në drejtuesin e SMP, ishte e mundur të thirrej menjëherë kohëmatësi dhe të arrihej kushti i garës.
Një problem në l2cap_le_connect_req mund të shkaktojë një rrjedhje të memories së kernelit, dhe në l2cap_connect ju mund të mbishkruani përmbajtjen e memories dhe të ekzekutoni kodin tuaj. Varianti i parë i sulmit mund të kryhet duke përdorur Bluetooth LE 4.0 (që nga viti 2009), i dyti duke përdorur Bluetooth BR/EDR 5.2 (që nga viti 2020).
Ka dobësi pas lëshimit në funksionet e kernelit Linux l2cap_connect dhe l2cap_le_connect_req net/bluetooth/l2cap_core.c që mund të lejojnë ekzekutimin e kodit dhe rrjedhjen e kujtesës së kernelit (përkatësisht) nga distanca nëpërmjet Bluetooth. Një sulmues në distancë mund të ekzekutojë kodin që rrjedh memorien e kernelit përmes Bluetooth nëse është në afërsi të viktimës. Ne rekomandojmë përditësimin e kryerjes së kaluar https://www.google.com/url https://github.com/torvalds/linux/commit/711f8c3fb3db61897080468586b970c87c61d9e4
Dobësia e dytë që u zbulua (tashmë e kataloguar nën CVE-2022-42895) është shkaktuar nga një rrjedhje e mbetur e kujtesës në funksionin l2cap_parse_conf_req, të cilat mund të përdoren për të marrë në distancë informacion rreth treguesve në strukturat e kernelit duke dërguar kërkesa për konfigurim të krijuara posaçërisht.
Për këtë cenueshmëri përmendet se në funksionin l2cap_parse_conf_req, është përdorur struktura l2cap_conf_efs, për të cilat memoria e alokuar nuk ishte inicializuar më parë, dhe përmes manipulimeve me flamurin FLAG_EFS_ENABLE, u bë e mundur të arrihet përfshirja e të dhënave të vjetra të baterisë në paketë.
flamuri i kanalit FLAG_EFS_ENABLE në vend të ndryshores remote_efs vendosni nëse struktura l2cap_conf_efs efs duhet të përdoret apo jo dhe është e mundur të vendosni flamurin FLAG_EFS_ENABLE pa dërguar në të vërtetë të dhënat e konfigurimit EFS dhe, në këtë rast, struktura e painitializuar l2cap_conf_efs efs do t'i dërgohet klientit në distancë, duke rrjedhur kështu informacione rreth përmbajtjen e kujtesës së kernelit, duke përfshirë treguesit e kernelit.
Problemi ndodh 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 (ai nuk përdoret si parazgjedhje).
Në këto dy gabime të zbuluara, prototipet e shfrytëzimit që funksionojnë në Ubuntu 22.04 tashmë janë lëshuar për të demonstruar mundësinë e një sulmi në distancë.
Për të kryer sulmin, sulmuesi duhet të jetë brenda rrezes Bluetooth; nuk kërkohet asnjë çiftim paraprak, por Bluetooth duhet të jetë aktiv në kompjuter. Për një sulm, mjafton të dihet adresa MAC e pajisjes së viktimës, e cila mund të përcaktohet duke nuhatur ose, në disa pajisje, të llogaritet në bazë të adresës MAC të Wi-Fi.
Në fund vlen të përmendet se u konstatua një problem tjetër i ngjashëm (CVE-2022-42895) në kontrolluesin L2CAP të cilat mund të rrjedhin përmbajtjen e kujtesës së kernelit në paketat e informacionit të konfigurimit. Dobësia e parë është shfaqur që nga gushti 2014 (kernel 3.16), dhe e dyta që nga tetori 2011 (kernel 3.0).
Për ata që janë të interesuar të ndjekin korrigjimin në shpërndarje, ata mund ta bëjnë këtë në faqet e mëposhtme: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora y Hark .