USB Gadgetda yadro quyi tizimi LinuxUSB Gadget API'sida zaiflik (CVE-2021-39685) aniqlandi, bu esa mijoz USB qurilmalarini yaratish va USB qurilmalarini simulyatsiya qilish uchun dasturiy interfeysni taqdim etadi. Ushbu zaiflik yadro ma'lumotlarining oqishiga, ishdan chiqishiga yoki yadro darajasida kodning o'zboshimchalik bilan bajarilishiga olib kelishi mumkin. Hujum imtiyozsiz mahalliy foydalanuvchi tomonidan USB Gadget API'si yordamida amalga oshirilgan turli xil qurilma sinflarini, masalan, rdis, hid, uac1, uac1_legacy va uac2 ni boshqarish orqali amalga oshiriladi.
Muammo yaqinda chop etilgan yadro yangilanishlarida hal qilindi. Linux 5.15.8, 5.10.85, 5.4.165, 4.19.221, 4.14.258, 4.9.293 va 4.4.295. Muammo taqsimotlarda hal qilinmagan (Debian, Ubuntu, RHEL, SUSE, Fedora, Arch). Zaiflikni namoyish qilish uchun ekspluatatsiya prototipi tayyorlandi.
Muammo rndis, hid, uac1, uac1_legacy va uac2 gadjet drayverlaridagi ma'lumotlarni uzatish so'rovlarini qayta ishlash moslamalarida buferning to'lib ketishidan kelib chiqadi. Zaiflikdan foydalanish natijasida imtiyozsiz tajovuzkor har doim 4096 bayt ajratilgan (USB_COMP_EP0_BUFSIZ) statik bufer hajmidan oshib ketadigan wLength maydoni qiymatiga ega maxsus nazorat so'rovini yuborish orqali yadro xotirasiga kirish huquqiga ega bo'lishi mumkin. Hujum paytida foydalanuvchi maydonidagi imtiyozsiz jarayon yadro xotirasiga 65 KBgacha bo'lgan ma'lumotlarni o'qishi yoki yozishi mumkin.
Manba: opennet.ru
