A Linux kernel sebezhetőségei távolról, Bluetooth-on keresztül kihasználva

Sebezhetőséget (CVE-2022-42896) azonosítottak a Linux kernelben, amely potenciálisan felhasználható a távoli kódfuttatás megszervezésére a kernel szintjén egy speciálisan kialakított L2CAP csomag Bluetooth-on keresztüli küldésével. Ezenkívül egy másik hasonló problémát (CVE-2022-42895) azonosítottak az L2CAP kezelőben, amely a konfigurációs információkat tartalmazó csomagokban a kernelmemória tartalmának kiszivárgásához vezethet. Az első sebezhetőség 2014 augusztusa óta jelenik meg (3.16-os kernel), a második pedig 2011 októbere óta (3.0-s kernel). A sérülékenységeket a Linux kernel 6.1.0, 6.0.8, 4.9.333, 4.14.299, 4.19.265, 5.4.224, 5.10.154 és 5.15.78 kiadásaiban javították. A disztribúciók javításait a következő oldalakon követheti nyomon: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

A távoli támadások végrehajtásának lehetőségének demonstrálására olyan prototípusokat tettek közzé, amelyek az Ubuntu 22.04-en működnek. A támadás végrehajtásához a támadónak a Bluetooth hatókörén belül kell lennie – nincs szükség előzetes párosításra, de a Bluetooth-nak aktívnak kell lennie a számítógépen. Támadáshoz elég tudni az áldozat eszközének MAC-címét, amely szimatolással meghatározható, illetve egyes eszközökön a Wi-Fi MAC-címe alapján is kiszámítható.

Az első sérülékenységet (CVE-2022-42896) egy már felszabadult memóriaterület elérése okozza (use-after-free) az l2cap_connect és l2cap_le_connect_req függvények megvalósítása során – a new_connection visszahíváson keresztüli csatorna létrehozása után a zárolás nem lett beállítva. hozzá, de be lett állítva egy időzítő (__set_chan_timer ), az időtúllépés lejártakor az l2cap_chan_timeout függvény meghívása és a csatorna törlése anélkül, hogy ellenőrizné a csatornával végzett munka befejezését az l2cap_le_connect* függvényekben.

Az alapértelmezett időkorlát 40 másodperc, és azt feltételezték, hogy ilyen késleltetéssel versenyhelyzet nem fordulhat elő, de kiderült, hogy az SMP-kezelő egy másik hibája miatt azonnali hívást lehetett elérni az időmérőn és elérni verseny állapota. Az l2cap_le_connect_req problémája a kernel memória szivárgásához, az l2cap_connectben pedig a memória tartalmának felülírásához és a kód végrehajtásához vezethet. Az első típusú támadás a Bluetooth LE 4.0 használatával hajtható végre (2009 óta), a második a Bluetooth BR/EDR 5.2 használatával (2020 óta).

A második sebezhetőséget (CVE-2022-42895) az l2cap_parse_conf_req függvény maradék memória-szivárgása okozza, amely segítségével távolról információkat szerezhet be a kernelstruktúrákra mutató mutatókról speciálisan kialakított konfigurációs kérések küldésével. Az l2cap_parse_conf_req függvény az l2cap_conf_efs struktúrát használta, amelyhez a lefoglalt memória nem volt előzetesen inicializálva, és a FLAG_EFS_ENABLE jelző manipulálásával lehetőség nyílt a verem régi adatainak a csomagba való felvételére. A probléma csak azokon a rendszereken jelentkezik, ahol a kernel a CONFIG_BT_HS opcióval épül fel (alapértelmezés szerint le van tiltva, de egyes disztribúciókon, például az Ubuntuban engedélyezve van). A sikeres támadáshoz a HCI_HS_ENABLED paramétert a felügyeleti felületen keresztül igaz értékre kell állítani (alapértelmezés szerint nincs használatban).

Forrás: opennet.ru

Hozzászólás