Kwetsberheden yn 'e Linux-kernel op ôfstân eksploitearre fia Bluetooth

In kwetsberens (CVE-2022-42896) is identifisearre yn 'e Linux-kernel, dy't mooglik brûkt wurde kin om útfiering fan koade op ôfstân te organisearjen op it kernelnivo troch in spesjaal ûntwurpen L2CAP-pakket fia Bluetooth te ferstjoeren. Dêrnjonken is in oar ferlykber probleem identifisearre (CVE-2022-42895) yn 'e L2CAP-handler, wat kin liede ta lekkage fan ynhâld fan kernelûnthâld yn pakketten mei konfiguraasjeynformaasje. De earste kwetsberens is sûnt augustus 2014 ferskynd (kernel 3.16), en de twadde sûnt oktober 2011 (kernel 3.0). De kwetsberens binne oanpakt yn Linux kernel releases 6.1.0, 6.0.8, 4.9.333, 4.14.299, 4.19.265, 5.4.224, 5.10.154, en 5.15.78. Jo kinne de reparaasjes folgje yn distribúsjes op 'e folgjende siden: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

Om de mooglikheid te demonstrearjen om in oanfal op ôfstân út te fieren, binne prototype-exploitaasjes publisearre dy't wurkje op Ubuntu 22.04. Om in oanfal út te fieren, moat de oanfaller binnen Bluetooth-berik wêze - pre-pairing is net fereaske, mar Bluetooth moat aktyf wêze op 'e kompjûter. Foar in oanfal is it genôch om it MAC-adres fan it apparaat fan it slachtoffer te witten, dat kin wurde bepaald troch sniffing of, op guon apparaten, berekkene op basis fan it Wi-Fi MAC-adres.

De earste kwetsberens (CVE-2022-42896) wurdt feroarsake troch tagong ta in al befrijde ûnthâldgebiet (gebrûk-nei-fergees) yn 'e ymplemintaasje fan' e l2cap_connect en l2cap_le_connect_req funksjes - nei it meitsjen fan in kanaal fia de new_connection callback, in slot waard net ynsteld foar it, mar in timer waard ynsteld (__set_chan_timer), op it ferrinnen fan de timeout, ropt de l2cap_chan_timeout funksje en wiskje it kanaal sûnder kontrolearjen de foltôging fan wurk mei it kanaal yn de l2cap_le_connect * funksjes.

De standert time-out is 40 sekonden en it waard oannommen dat in race betingst koe net foarkomme mei sa'n fertraging, mar it die bliken dat troch in oare flater yn de SMP handler, it wie mooglik om te kommen ta in direkte oprop nei de timer en berikke in ras betingst. In probleem yn l2cap_le_connect_req kin liede ta in kernel ûnthâld lek, en yn l2cap_connect kin liede ta in oerskriuwen fan de ynhâld fan ûnthâld en it útfieren fan syn koade. It earste type oanfal kin wurde útfierd mei Bluetooth LE 4.0 (sûnt 2009), de twadde by it brûken fan Bluetooth BR / EDR 5.2 (sûnt 2020).

De twadde kwetsberens (CVE-2022-42895) wurdt feroarsake troch in oerbleaune ûnthâldlek yn 'e l2cap_parse_conf_req-funksje, dy't kin wurde brûkt om op ôfstân ynformaasje te krijen oer pointers nei kernelstruktueren troch spesjaal makke konfiguraasjefersiken te ferstjoeren. De funksje l2cap_parse_conf_req brûkte de l2cap_conf_efs-struktuer, wêrfoar it tawiisde ûnthâld net foarinisjalisearre waard en troch de flagge FLAG_EFS_ENABLE te manipulearjen wie it mooglik om âlde gegevens fan 'e stapel yn it pakket op te nimmen. It probleem ferskynt allinich op systemen wêr't de kernel is boud mei de CONFIG_BT_HS-opsje (standert útskeakele, mar ynskeakele op guon distribúsjes, lykas Ubuntu). In suksesfolle oanfal fereasket ek it ynstellen fan de parameter HCI_HS_ENABLED fia de behearynterface op wier (net standert brûkt).

Boarne: opennet.ru

Add a comment