Në bërthamën e Linux është zbuluar një dobësi (CVE-2022-42896), e cila mund të përdoret potencialisht për të organizuar ekzekutimin e kodit në nivel bërthame përmes dërgimit të një paketi të formatuar posaçërisht L2CAP përmes Bluetooth. Për më tepër, është zbuluar një problem tjetër i ngjashëm (CVE-2022-42895) në përpunuesin L2CAP, i cili mund të çojë në rrjedhjen e përmbajtjes së memorjes së bërthamës në paketat me informacionet e konfigurimit. Dobësia e parë shfaqet që nga gushti 2014 (bërthama 3.16), ndërsa e dyta që nga oktobri 2011 (bërthama 3.0). Dobësitë janë eliminuar në lëshimet e bërthamës 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ë ndiqni përmirësimin në distribucione në këto faqe: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.
Për të demonstruar mundësinë e kryerjes së një sulmi të largët, janë publikuar prototipa exploit-esh, që funksionojnë në Ubuntu 22.04. Për të kryer sulmin, sulmuesi duhet të jetë brenda arritshmërisë Bluetooth - nuk kërkohet çiftim paraprak, por duhet që Bluetooth të jetë aktiv në kompjuter. Për sulmin mjafton të dihet adresa MAC e pajisjes që është viktimë, e cila mund të përcaktohet përmes sniffing ose në disa pajisje të llogaritet në bazë të adresës MAC të Wi-Fi.
Dobësia e parë (CVE-2022-42896) shkaktohet nga referenca në një zonë të memorjes që është çliruar tashmë (use-after-free) në implementimin e funksioneve l2cap_connect dhe l2cap_le_connect_req - pasi krijohet kanali përmes thirrjes së callback-ut new_connection, për të nuk ishte vendosur një bllokim, por ishte konfiguruar një timer (__set_chan_timer), që pas skadimit të kohës thërriste funksionin l2cap_chan_timeout dhe pastronte kanalin pa verifikimin e përfundimit të punës me kanalin në funksionet l2cap_le_connect*.
Në mënyrë të paracaktuar, koha e pritjes është 40 sekonda dhe supozohej që një gjendje garë nuk mund të ndodhte në një ndalesë të tillë, por u zbulua se për shkak të një gabimi tjetër në përpunuesin SMP është e mundur të arrihet thirrja e menjëhershme e timer-it dhe arritja e një gjendjeje gare. Problemi në l2cap_le_connect_req mund të çojë në rrjedhjen e memorjes së bërthamës, ndërsa në l2cap_connect në shkrimin e përmbajtjes së memorjes dhe ekzekutimin e kodit të tij. Variantin e parë të sulmit mund të kryhet duke përdorur Bluetooth LE 4.0 (që nga 2009), në të dytin duke përdorur Bluetooth BR/EDR 5.2 (që nga 2020).
Dobësia e dytë (CVE-2022-42895) shkaktohet nga rrjedhja e të dhënave të mbetura nga memoria në funksionin l2cap_parse_conf_req, që mund të përdoret për marrjen e informacionit në distancë mbi treguesit ndaj strukturave të bërthamës përmes dërgimit të kërkesave të konfigurimit të formatuara posaçërisht. Në funksionin l2cap_parse_conf_req u përdor një strukturë l2cap_conf_efs, për të cilën nuk u krye inicializimi paraprak i memorjes së ndarë dhe përmes manipulimit me flag-un FLAG_EFS_ENABLE ishte e mundur të nxitësh përfshirjen në paketë të të dhënave të vjetra nga staku. Problemi shfaqet vetëm në sistemet ku bërthama është ndërtuar me opsionin CONFIG_BT_HS (për defekt e çaktivizuar, por e aktivizuar në disa distribucione, si në Ubuntu). Për një sulm të suksesshëm gjithashtu kërkohet vendosja e parametrave HCI_HS_ENABLED përmes ndërfaqes menaxhuese në vlerën true (për defekt nuk përdoret).
Burimi: opennet.ru
