Zraniteľnosť v jadre Linuxu vzdialene zneužitá cez Bluetooth

V jadre Linuxu bola identifikovaná chyba zabezpečenia (CVE-2022-42896), ktorú možno potenciálne použiť na organizáciu vzdialeného spúšťania kódu na úrovni jadra odoslaním špeciálne navrhnutého paketu L2CAP cez Bluetooth. Okrem toho bol v obslužnom programe L2022CAP identifikovaný ďalší podobný problém (CVE-42895-2), ktorý môže viesť k úniku obsahu pamäte jadra v paketoch s konfiguračnými informáciami. Prvá zraniteľnosť sa objavuje od augusta 2014 (kernel 3.16) a druhá od októbra 2011 (kernel 3.0). Chyby zabezpečenia boli vyriešené vo vydaniach jadra Linuxu 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 môžete sledovať na nasledujúcich stránkach: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

Na demonštráciu možnosti vykonania vzdialeného útoku boli zverejnené prototypy exploitov, ktoré fungujú na Ubuntu 22.04. Na vykonanie útoku musí byť útočník v dosahu Bluetooth – predbežné párovanie sa nevyžaduje, ale Bluetooth musí byť v počítači aktívny. Na útok stačí poznať MAC adresu zariadenia obete, ktorá sa dá zistiť pomocou sniffovania 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) pri implementácii funkcií l2cap_connect a l2cap_le_connect_req - po vytvorení kanála cez spätné volanie new_connection nebol nastavený zámok pre to, ale bol nastavený časovač (__set_chan_timer ), po uplynutí časového limitu sa zavolá funkcia l2cap_chan_timeout a kanál sa vymaže 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 závodná podmienka nemôže nastať s takým oneskorením, ale ukázalo sa, že v dôsledku inej chyby v SMP handler bolo možné dosiahnuť okamžité zavolanie časovača a dosiahnuť rasový stav. Problém v l2cap_le_connect_req môže viesť k úniku pamäte jadra a v l2cap_connect môže viesť k prepísaniu obsahu pamäte a spusteniu jej kódu. Prvý typ útoku je možné vykonať 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škovej pamäte vo funkcii l2cap_parse_conf_req, ktorú možno použiť na vzdialené získanie informácií o ukazovateľoch na štruktúry jadra odoslaním špeciálne vytvorených konfiguračných požiadaviek. Funkcia l2cap_parse_conf_req využívala štruktúru l2cap_conf_efs, pre ktorú nebola vopred inicializovaná alokovaná pamäť a manipuláciou s príznakom FLAG_EFS_ENABLE bolo možné do paketu zahrnúť staré dáta zo zásobníka. Problém sa vyskytuje iba v systémoch, kde je jadro zostavené s možnosťou CONFIG_BT_HS (v predvolenom nastavení vypnutá, ale povolená na niektorých distribúciách, ako je Ubuntu). Úspešný útok tiež vyžaduje nastavenie parametra HCI_HS_ENABLED cez rozhranie správy na hodnotu true (predvolene sa nepoužíva).

Zdroj: opennet.ru

Pridať komentár