यूएसबी गैजेट में, एक कर्नेल सबसिस्टम Linux, предоставляющей программный интерфейс для создания клиентских USB-устройств и программной симуляции USB-устройств, выявлена уязвимость (CVE-2021-39685), которая может привести к утечке информации из ядра, краху или выполнению произвольного кода на уровне ядра. Атака производится непривилегированным локальным пользователем через манипуляции с различными классами устройств, реализованными на базе API USB Gadget, такими, как rndis, hid, uac1, uac1_legacy и uac2.
Проблема устранена в опубликованных на днях обновлениях ядра Linux 5.15.8, 5.10.85, 5.4.165, 4.19.221, 4.14.258, 4.9.293 и 4.4.295. В дистрибутивах проблема пока остаётся неисправленной (Debian, Ubuntu, RHEL, SUSE, Fedora, Arch). Для демонстрации уязвимости подготовлен прототип эксплоита.
समस्या गैजेट ड्राइवर rndis, hid, uac1, uac1_legacy और uac2 में डेटा ट्रांसफर अनुरोध हैंडलर में बफर ओवरफ्लो के कारण होती है। भेद्यता का फायदा उठाने के परिणामस्वरूप, एक विशेषाधिकार प्राप्त हमलावर एक wLength फ़ील्ड मान के साथ एक विशेष नियंत्रण अनुरोध भेजकर कर्नेल मेमोरी तक पहुंच प्राप्त कर सकता है जो स्थिर बफर के आकार से अधिक है, जिसके लिए 4096 बाइट्स हमेशा आवंटित किए जाते हैं (USB_COMP_EP0_BUFSIZ)। हमले के दौरान, उपयोगकर्ता स्थान में एक अप्रकाशित प्रक्रिया कर्नेल मेमोरी में 65 KB तक डेटा पढ़ या लिख सकती है।
स्रोत: opennet.ru
