Zraniteľnosti v jadre Linuxu, ktoré môžu byť vzdialene zneužité prostredníctvom Bluetooth

V jadre Linux bola zistená zraniteľnosť (CVE-2022-42896), ktorá môže potenciálne umožniť vzdialené vykonávanie kódu na úrovni jadra prostredníctvom zaslania špeciálne formátovaného L2CAP paketu cez Bluetooth. Okrem toho bola zistená ďalšia podobná problém (CVE-2022-42895) v spracovaní L2CAP, ktorá môže viesť k úniku obsahu pamäte jadra v paktoch so spôsobmi konfigurácie. Prvá zraniteľnosť sa prejavuje od augusta 2014 (jadro 3.16) a druhá od októbra 2011 (jadro 3.0). Zraniteľnosti boli odstránené v verziách jadra Linux 6.1.0, 6.0.8, 4.9.333, 4.14.299, 4.19.265, 5.4.224, 5.10.154 a 5.15.78. Opravy v distribúciách je možné sledovať na nasledujúcich stránkach: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

Na demonštráciu možnosti vykonania vzdialeného útoku boli publikované prototypy exploitov, ktoré fungujú v Ubuntu 22.04. Na vykonanie útoku musí byť útočník v dosahu Bluetooth — predchádzajúce spárovanie nie je potrebné, ale Bluetooth na počítači musí byť aktívny. Na útok stačí poznať MAC adresu zariadenia obete, ktorá môže byť určená pomocou sniffingu alebo na niektorých zariadeniach vypočítaná na základe MAC adresy Wi-Fi.

Prvá zraniteľnosť (CVE-2022-42896) je spôsobená prístupom k už uvoľnenej oblasti pamäte (use-after-free) v implementácii funkcií l2cap_connect a l2cap_le_connect_req — po vytvorení kanála prostredníctvom callbacku new_connection nebola nastavená zamknutie, ale nastavil sa časovač (__set_chan_timer), ktorý po uplynutí časového limitu zavolal funkciu l2cap_chan_timeout a vyčistil kanál bez kontroly dokončenia práce s kanálom vo funkciách l2cap_le_connect*.

Predvolený časový limit je 40 sekúnd a predpokladalo sa, že pri takejto oneskorení sa nemôže vyskytnúť stav pretečenia, avšak ukázalo sa, že v dôsledku ďalšej chyby v spracovateľovi SMP je možné dosiahnuť okamžité vyvolanie časovača a dosiahnuť stav pretečenia. Problém v l2cap_le_connect_req môže viesť k úniku pamäte jadra, zatiaľ čo v l2cap_connect k prepísaniu obsahu pamäte a vykonaniu vlastného kódu. Prvá varianta útoku môže byť vykonaná pomocou Bluetooth LE 4.0 (od roku 2009), druhá pri použití Bluetooth BR/EDR 5.2 (od roku 2020).

Druhá zraniteľnosť (CVE-2022-42895) je spôsobená únikom zvyškových údajov z pamäte vo funkcii l2cap_parse_conf_req, čo môže byť využité na vzdialené získanie informácií o ukazovateľoch na štruktúry jadra prostredníctvom odosielania špeciálne upravených konfigurácií. Vo funkcii l2cap_parse_conf_req sa používala štruktúra l2cap_conf_efs, pre ktorú nebola vykonaná predchádzajúca inicializácia pridelené pamäte a prostredníctvom manipulácie s vlagom FLAG_EFS_ENABLE bolo možné dosiahnuť zahrnutie starých údajov z zásobníka do paketu. Problém sa prejavuje len v systémoch, v ktorých je jadro zostavené s možnosťou CONFIG_BT_HS (predvolene vypnutá, ale aktivovaná v niektorých distribúciách, ako je Ubuntu). Pre úspešný útok je tiež potrebné nastaviť parameter HCI_HS_ENABLED cez ovládací rozhranie na hodnotu true (predvolene sa nepoužíva).

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster