Ранливости во кернелот на Линукс далечински експлоатирани преку Bluetooth

Идентификувана е ранливост (CVE-2022-42896) во кернелот на Linux, кој потенцијално може да се користи за организирање далечинско извршување на код на ниво на јадрото со испраќање на специјално дизајниран L2CAP пакет преку Bluetooth. Дополнително, идентификуван е друг сличен проблем (CVE-2022-42895) во управувачот L2CAP, што може да доведе до истекување на содржината на меморијата на јадрото во пакети со информации за конфигурација. Првата ранливост се појавува од август 2014 година (кернел 3.16), а втората од октомври 2011 година (кернел 3.0). Ранливостите се адресирани во изданијата на кернелот на Linux 6.1.0, 6.0.8, 4.9.333, 4.14.299, 4.19.265, 5.4.224, 5.10.154 и 5.15.78. Можете да ги следите поправките во дистрибуциите на следните страници: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

За да се демонстрира можноста за извршување на далечински напад, објавени се прототипи експлоатирања кои работат на Ubuntu 22.04. За да изврши напад, напаѓачот мора да биде во опсегот на Bluetooth - не е потребно претходно спарување, но Bluetooth мора да биде активен на компјутерот. За напад, доволно е да се знае MAC адресата на уредот на жртвата, која може да се одреди со шмркање или, на некои уреди, да се пресмета врз основа на MAC адресата на Wi-Fi.

Првата ранливост (CVE-2022-42896) е предизвикана од пристап до веќе ослободена мемориска област (користење-по-слободно) при имплементацијата на функциите l2cap_connect и l2cap_le_connect_req - по создавањето канал преку повратен повик new_connection, не беше поставена заклучување за него, но беше поставен тајмер (__set_chan_timer ), по истекот на времето, повикувајќи ја функцијата l2cap_chan_timeout и бришејќи го каналот без проверка на завршувањето на работата со каналот во функциите l2cap_le_connect*.

Стандардниот тај-аут е 40 секунди и се претпоставуваше дека состојбата на трката не може да се појави со такво задоцнување, но се покажа дека поради друга грешка во управувачот со SMP, можно е да се постигне инстант повик до тајмерот и да се постигне состојба на трката. Проблем во l2cap_le_connect_req може да доведе до протекување на меморијата на кернелот, а во l2cap_connect може да доведе до препишување на содржината на меморијата и извршување на нејзиниот код. Првиот тип на напад може да се изврши со помош на Bluetooth LE 4.0 (од 2009 година), вториот кога се користи Bluetooth BR/EDR 5.2 (од 2020 година).

Втората ранливост (CVE-2022-42895) е предизвикана од преостанатото истекување на меморијата во функцијата l2cap_parse_conf_req, која може да се користи за далечинско добивање информации за покажувачите на структурите на јадрото со испраќање специјално изработени барања за конфигурација. Функцијата l2cap_parse_conf_req ја користеше структурата l2cap_conf_efs, за која доделената меморија не беше претходно иницијализирана и со манипулирање со знамето FLAG_EFS_ENABLE беше можно да се вклучат стари податоци од стекот во пакетот. Проблемот се појавува само на системи каде кернелот е изграден со опцијата CONFIG_BT_HS (стандардно оневозможена, но овозможена на некои дистрибуции, како што е Ubuntu). За успешен напад, исто така, потребно е поставување на параметарот HCI_HS_ENABLED преку интерфејсот за управување на точно (не се користи стандардно).

Извор: opennet.ru

Додадете коментар