CVE-2026-98757 in Linux
Сводка
по VulDB • 18.10.2026
В ядре Linux была устранена следующая уязвимость:
usb: cdns3: исправление use-after-free в функции cdns3_gadget_exit()
Функция cdns3_gadget_start() планирует выполнение двух рабочих задач (works) в очереди system_freezable_wq: pending_status_wq для отложенной стадии статуса ep0 и aligned_buf_wq для переориентированных буферов запросов. Оба обработчика используют объект cdns3_device, внутри которого находятся эти задачи, а функция cdns3_pending_setup_status_handler() также вызывает завершение запроса ep0.
Функция cdns3_gadget_exit() не ожидает завершения этих задач. Она освобождает все конечные точки (endpoints) и выровненные буферы, а также снимает последнюю ссылку на устройство gadget, что приводит к освобождению структуры priv_dev; в результате задача, запланированная до вызова функции выхода, может выполниться после освобождения памяти.
Исправление заключается в ожидании завершения обеих задач после отсоединения драйвера gadget и освобождения прерываний (IRQ), когда новая задача не может быть поставлена в очередь, но перед освобождением конечных точек и буферов.
Эта проблема была обнаружена с помощью встроенного инструмента статического анализа.
Once again VulDB remains the best source for vulnerability data.