Yadroda Linux Bluetooth orqali maxsus tayyorlangan L2CAP paketini yuborish orqali yadro darajasidagi kodni masofadan turib bajarish uchun ishlatilishi mumkin bo'lgan zaiflik (CVE-2022-42896) aniqlandi. Shunga o'xshash muammo (CVE-2022-42895) L2CAP ishlov beruvchisida ham aniqlandi, bu konfiguratsiya paketlarida yadro xotirasining oqishiga olib kelishi mumkin. Birinchi zaiflik 2014-yil avgustidan beri (yadro 3.16), ikkinchisi esa 2011-yil oktabridan beri (yadro 3.0) mavjud. Zaifliklar yadro relizlari bilan tuzatildi. Linux 6.1.0, 6.0.8, 4.9.333, 4.14.299, 4.19.265, 5.4.224, 5.10.154 va 5.15.78. Siz tuzatishni quyidagi sahifalardagi tarqatishlarda kuzatishingiz mumkin: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.
Masofaviy hujumni amalga oshirish imkoniyatini namoyish etish uchun ishlaydigan ekspluatatsiya prototiplari nashr etildi Ubuntu 22.04-aprel. Hujumni amalga oshirish uchun tajovuzkor Bluetooth diapazonida bo'lishi kerak — oldindan ulanish shart emas, lekin kompyuterda Bluetooth faol bo'lishi kerak. Hujum jabrlanuvchining qurilmasining MAC manzilini bilishni talab qiladi, uni hidlash orqali yoki ba'zi qurilmalarda Wi-Fi MAC manzilidan hisoblash orqali aniqlash mumkin.
Birinchi zaiflik (CVE-2022-42896) l2cap_connect va l2cap_le_connect_req funksiyalarini amalga oshirishda allaqachon bo‘shatilgan xotira maydoniga foydalanishdan keyin bepul kirish tufayli yuzaga keladi. New_connection qayta qo'ng'iroq orqali kanal yaratilgandan so'ng, uning uchun blokirovka o'rnatilmagan, ammo taymer (__set_chan_timer) o'rnatildi, u vaqt tugashi bilan l2cap_chan_timeout funksiyasini chaqirdi va l2cap_le_connect* funksiyalarida kanal bilan ishlashning tugallanganligini tekshirmasdan kanalni tozaladi.
Standart taym-aut 40 soniya bo'lib, bunday kechikish bilan poyga holati yuzaga kelishi mumkin emas deb taxmin qilingan. Biroq, ma'lum bo'lishicha, SMP ishlov beruvchisidagi yana bir xato taymerni darhol chaqirishga olib kelishi mumkin, natijada poyga holati paydo bo'ladi. l2cap_le_connect_req-dagi nuqson yadro xotirasi oqishiga olib kelishi mumkin, l2cap_connect-da esa u xotira tarkibini qayta yozishi va aniqlanmagan kodni bajarishi mumkin. Birinchi hujum varianti Bluetooth LE 4.0 (2009 yildan), ikkinchisi esa Bluetooth BR/EDR 5.2 (2020 yildan) yordamida amalga oshirilishi mumkin.
Ikkinchi zaiflik (CVE-2022-42895) l2cap_parse_conf_req funksiyasidagi qoldiq xotira oqishi tufayli yuzaga keladi, undan maxsus tayyorlangan konfiguratsiya so'rovlarini yuborish orqali yadro tuzilmalariga ko'rsatkichlar haqida ma'lumotni masofadan olish uchun foydalanish mumkin. l2cap_parse_conf_req funksiyasi l2cap_conf_efs tuzilmasidan foydalangan, buning uchun ajratilgan xotira oldindan ishga tushirilmagan va FLAG_EFS_ENABLE bayrog'ini boshqarish orqali paketga stekdan eski ma'lumotlarni kiritish mumkin bo'lgan. Muammo faqat yadro CONFIG_BT_HS opsiyasi bilan kompilyatsiya qilingan tizimlarda yuzaga keladi (sukut bo'yicha o'chirilgan, lekin ba'zi distributivlarda yoqilgan, masalan... UbuntuMuvaffaqiyatli hujum, shuningdek, boshqaruv interfeysi orqali HCI_HS_ENABLED parametrini true ga o'rnatishni talab qiladi (sukut bo'yicha ishlatilmaydi).
Manba: opennet.ru
