USB gadgetning Linux yadro quyi tizimidagi zaiflik, kodni bajarishga ruxsat berishi mumkin

USB-mijoz qurilmalarini va USB qurilmalarini taqlid qiluvchi dasturiy ta'minotni yaratish uchun dasturiy interfeysni ta'minlovchi Linux yadrosining quyi tizimi bo'lgan USB Gadget yadrodan ma'lumotlarning oqib chiqishi, ishdan chiqishi yoki bajarilishiga olib kelishi mumkin bo'lgan zaiflikka (CVE-2021-39685) ega. yadro darajasidagi ixtiyoriy kod. Hujum rndis, hid, uac1, uac1_legacy va uac2 kabi USB Gadget API asosida amalga oshirilgan turli xil qurilmalar sinflarini manipulyatsiya qilish orqali imtiyozsiz mahalliy foydalanuvchi tomonidan amalga oshiriladi.

Muammo yaqinda chop etilgan 5.15.8, 5.10.85, 5.4.165, 4.19.221, 4.14.258, 4.9.293 va 4.4.295 Linux yadro yangilanishlarida hal qilindi. Muammo distributivlarda (Debian, Ubuntu, RHEL, SUSE, Fedora, Arch) hal qilinmagan. 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

a Izoh qo'shish