В 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
