Zranitelnosti v jádru Linuxu, vzdáleně zneužitelné přes Bluetooth

V jádře Linux byla zjištěna zranitelnost (CVE-2022-42896), která může potenciálně být využita k organizaci vzdáleného spuštění kódu na úrovni jádra prostřednictvím zaslání speciálně formátovaného L2CAP paketu prostřednictvím Bluetooth. Kromě toho byla odhalena další podobná problém (CVE-2022-42895) v zpracovateli L2CAP, který může vést k úniku obsahu paměti jádra v paketech se zprávami o konfiguraci. První zranitelnost se projevuje od srpna 2014 (jádro 3.16), zatímco druhá od října 2011 (jádro 3.0). Zranitelnosti byly opraveny ve vydáních jádra 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. Sledovat opravy v distribucích lze na následujících stránkách: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

Pro demonstraci možnosti provedení vzdáleného útoku byly publikovány prototypy exploitů, které fungují v Ubuntu 22.04. K provedení útoku musí být útočník v dosahu Bluetooth — předchozí spárování není vyžadováno, ale je nutné, aby byl Bluetooth na počítači aktivní. K útoku stačí znát MAC adresu zařízení oběti, která může být určena pomocí sniffingu nebo na některých zařízeních vypočtena na základě MAC adresy Wi-Fi.

První zranitelnost (CVE-2022-42896) je způsobena přístupem k již uvolněné oblasti paměti (use-after-free) v implementaci funkcí l2cap_connect a l2cap_le_connect_req — po vytvoření kanálu prostřednictvím callback volání new_connection, pro něj nebyla nastavena zámka, ale byl nastaven časovač (__set_chan_timer), po uplynutí časového limitu volající funkci l2cap_chan_timeout a čistí kanál bez kontroly ukončení práce s kanálem ve funkcích l2cap_le_connect*.

Výchozí časový limit činí 40 sekund a předpokládalo se, že stav závodu při takovém zpoždění nemůže vzniknout, ale ukázalo se, že kvůli jiné chybě v zpracovateli SMP lze dosáhnout okamžitého vyvolání časovače a dosažení stavu závodu. Problém v l2cap_le_connect_req může vést k úniku paměti jádra, zatímco v l2cap_connect k přepsání obsahu paměti a spuštění vlastního kódu. První variantu útoku lze provést při použití Bluetooth LE 4.0 (od roku 2009), druhou při použití Bluetooth BR/EDR 5.2 (od roku 2020).

Druhá zranitelnost (CVE-2022-42895) je způsobena únikem zbytkových dat z paměti ve funkci l2cap_parse_conf_req, což může být využito k vzdálenému získání informací o ukazatelích na struktury jádra zasláním speciálně upravených konfiguračních požadavků. Ve funkci l2cap_parse_conf_req byla použita struktura l2cap_conf_efs, pro kterou nebyla provedena předběžná inicializace přidělené paměti a prostřednictvím manipulací s příznakem FLAG_EFS_ENABLE bylo možné dosáhnout zahrnutí starých dat ze zásobníku do paketu. Problém se projevuje pouze v systémech, kde je jádro sestaveno s volbou CONFIG_BT_HS (ve výchozím nastavení je vypnuta, ale je aktivována v některých distribucích, například v Ubuntu). Pro úspěšný útok je také vyžadováno nastavení parametru HCI_HS_ENABLED prostřednictvím řídícího rozhraní na hodnotu true (ve výchozím stavu se nepoužívá).

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster