Вразливість у підсистемі 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

Додати коментар або відгук