Linux kodola ievainojamības, kas tiek attālināti izmantotas, izmantojot Bluetooth

Linux kodolā ir konstatēta ievainojamība (CVE-2022-42896), ko potenciāli var izmantot, lai organizētu attālu koda izpildi kodola līmenī, nosūtot īpaši izstrādātu L2CAP paketi, izmantojot Bluetooth. Turklāt L2022CAP apdarinātājā ir konstatēta cita līdzīga problēma (CVE-42895-2), kas var izraisīt kodola atmiņas satura noplūdi paketēs ar konfigurācijas informāciju. Pirmā ievainojamība parādās kopš 2014. gada augusta (kodols 3.16), bet otrā — kopš 2011. gada oktobra (kodolu 3.0). Ievainojamības ir novērstas Linux kodola laidienos 6.1.0, 6.0.8, 4.9.333, 4.14.299, 4.19.265, 5.4.224, 5.10.154 un 5.15.78. Izplatījumu labojumiem varat izsekot šādās lapās: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

Lai demonstrētu iespēju veikt attālinātu uzbrukumu, ir publicēti prototipu izmantošanas veidi, kas darbojas Ubuntu 22.04. Lai veiktu uzbrukumu, uzbrucējam jāatrodas Bluetooth diapazonā — iepriekšēja savienošana pārī nav nepieciešama, taču datorā Bluetooth ir jābūt aktīvam. Uzbrukumam pietiek zināt upura ierīces MAC adresi, ko var noteikt šņaukšanas ceļā vai dažās ierīcēs aprēķināt, pamatojoties uz Wi-Fi MAC adresi.

Pirmo ievainojamību (CVE-2022-42896) izraisa piekļuve jau atbrīvotam atmiņas apgabalam (use-after-free), īstenojot funkcijas l2cap_connect un l2cap_le_connect_req - pēc kanāla izveides, izmantojot new_connection atzvanīšanu, bloķēšana netika iestatīta. tam, bet tika iestatīts taimeris (__set_chan_timer ), pēc taimauta termiņa beigām izsaucot funkciju l2cap_chan_timeout un notīrot kanālu, nepārbaudot darba pabeigšanu ar kanālu funkcijās l2cap_le_connect*.

Noklusētais taimauts ir 40 sekundes un tika pieņemts, ka ar šādu aizkavi sacensību stāvoklis nevarētu rasties, taču izrādījās, ka citas SMP apdarītāja kļūdas dēļ bija iespējams panākt tūlītēju taimera izsaukumu un sasniegt sacensību stāvoklis. Problēma l2cap_le_connect_req var izraisīt kodola atmiņas noplūdi, savukārt l2cap_connect tā var izraisīt atmiņas satura pārrakstīšanu un tā koda izpildi. Pirmā veida uzbrukumu var veikt, izmantojot Bluetooth LE 4.0 (kopš 2009. gada), otro, izmantojot Bluetooth BR/EDR 5.2 (kopš 2020. gada).

Otro ievainojamību (CVE-2022-42895) izraisa atlikušās atmiņas noplūde funkcijā l2cap_parse_conf_req, ko var izmantot, lai attālināti iegūtu informāciju par norādes uz kodola struktūrām, nosūtot īpaši izstrādātus konfigurācijas pieprasījumus. Funkcija l2cap_parse_conf_req izmantoja l2cap_conf_efs struktūru, kurai piešķirtā atmiņa nebija iepriekš inicializēta un, manipulējot ar karogu FLAG_EFS_ENABLE, bija iespējams paketē iekļaut vecos datus no steka. Problēma parādās tikai sistēmās, kurās kodols ir izveidots ar opciju CONFIG_BT_HS (pēc noklusējuma ir atspējota, bet dažos izplatījumos, piemēram, Ubuntu, ir iespējota). Veiksmīgam uzbrukumam ir arī jāiestata parametrs HCI_HS_ENABLED, izmantojot pārvaldības interfeisu, uz True (pēc noklusējuma netiek izmantots).

Avots: opennet.ru

Pievieno komentāru