Linux kernel sebezhetősége, amelyet távolról kihasználhatunk Bluetooth-on keresztül

A Linux kernelben felfedeztek egy sebezhetőséget (CVE-2022-42896), amely potenciálisan felhasználható a kernel szintű távoli kódvégrehajtás megszervezésére, ha egy megfelelően formázott L2CAP-csomagot küldenek Bluetooth-on keresztül. Emellett egy másik hasonló probléma (CVE-2022-42895) is felfedezésre került az L2CAP feldolgozójában, amely a kernel memóriájának tartalmának kiszivárgásához vezethet a konfigurációs információkat tartalmazó csomagokban. Az első sebezhetőség 2014 augusztusa óta (3.16 kernel), a második pedig 2011 októbere óta (3.0 kernel) létezik. A sebezhetőségeket orvosolták 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 verzióiban. A javítások nyomon követhetők a következő disztribúciós oldalakon: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

A távoli támadás lehetőségének bemutatására kipróbált exploit prototípusokat tettek közzé, amelyek 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 tartózkodnia – párosítás előzetesen nem szükséges, de a számítógép Bluetooth-jának aktívnak kell lennie. A támadáshoz elegendő ismerni az áldozat eszközének MAC-címét, amelyet sniffing útján határozhatunk meg, vagy egyes eszközök esetében a Wi-Fi MAC-címéből számíthatunk ki.

Az első sebezhetőséget (CVE-2022-42896) egy már felszabadított memória területhez való hozzáférés (use-after-free) okozza az l2cap_connect és l2cap_le_connect_req funkciók implementálásában – miután a csatorna létrehozásra került a new_connection callback-hívásán keresztül, nem lett blokkolva, de be lett állítva egy időzítő (__set_chan_timer), amely a lejárati idő után meghívja az l2cap_chan_timeout funkciót és tisztítja a csatornát anélkül, hogy ellenőrizné a csatornával kapcsolatos műveletek befejezését az l2cap_le_connect* funkciókban.

Alapértelmezés szerint az időtúllépés 40 másodperc, és úgy gondolták, hogy ilyen késleltetési idő mellett versenyhelyzet nem alakulhat ki, de kiderült, hogy egy másik hiba miatt az SMP feldolgozójában az időzítő azonnali meghívása és versenyhelyzet elérhető. Az l2cap_le_connect_req problémája memóriaszivárgáshoz vezethet, míg az l2cap_connect esetén a memória tartalmának felülírásához és saját kódunk végrehajtásához. Az első támadási lehetőség Bluetooth LE 4.0 (2009 óta) használatával valósítható meg, a második pedig Bluetooth BR/EDR 5.2 (2020 óta) alkalmazásával.

A második sebezhetőség (CVE-2022-42895) a memória maradványadatainak szivárgásából ered az l2cap_parse_conf_req függvényben, amely segítségével távolról kinyerhetők a kernel struktúrákra mutató mutatók információi, speciálisan formázott konfigurációs kérések küldésével. Az l2cap_parse_conf_req függvényben az l2cap_conf_efs struktúrát használták, amelynek foglalt memóriája nem volt előzetesen inicializálva, és a FLAG_EFS_ENABLE zászló manipulációjával lehetővé vált, hogy a csomagba régi adatok kerüljenek a veremből. A probléma csak olyan rendszerekben jelentkezik, ahol a kernel a CONFIG_BT_HS opcióval van összeállítva (alapértelmezetten ki van kapcsolva, de egyes disztribúciókban, például az Ubuntu-ban aktív). A sikeres támadáshoz szükség van a HCI_HS_ENABLED paraméter beállítására a kezelői felületen igaz (alapértelmezetten nincs használva).

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster