Уразлівасць у падсістэме Linux-ядры USB Gadget, патэнцыйна якая дазваляе выканаць код

У USB Gadget, падсістэме ядра 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). Для дэманстрацыі ўразлівасці падрыхтаваны прататып эксплоіту.

Праблема выклікана перапаўненнем буфера ў апрацоўшчыках запытаў на перадачу дадзеных у gadget-драйверах rndis, hid, uac1, uac1_legacy і uac2. У выніку эксплуатацыі ўразлівасці непрывілеяваны атакавалы можа атрымаць доступ да памяці ядра праз адпраўку адмысловага кіраўніка запыту са значэннем поля wLength, які перавышае памер статычнага буфера, для якога заўсёды вылучаецца 4096 байт (USB_COMP_EP0_BUFSIZ). Падчас нападаў можна з непрывілеяванага працэсу ў прасторы карыстача прачытаць ці запісаць да 65 КБ дадзеных у памяць ядра.

Крыніца: opennet.ru

Дадаць каментар