CVE-2024-50100 in Linux
Сводка
по VulDB • 14.06.2026
В ядре Linux устранена следующая уязвимость:
USB: gadget: dummy-hcd: исправлена проблема «task hung» (зависание задачи)
Фаззер syzbot регулярно сталкивался с проблемами «task hung» с тех пор, как драйвер dummy-hcd был изменен для использования hrtimers вместо обычных таймеров. Выяснилось, что проблемы вызваны тонким различием между API timer_pending() и hrtimer_active().
Замена была выполнена механически: первый API был заменен на второй. Однако timer_pending() возвращает True, когда таймер находится в очереди, но не тогда, когда выполняется его колбэк, тогда как hrtimer_active() возвращает True, когда hrtimer находится в очереди _или_ выполняется его колбэк. Это различие иногда приводило к тому, что dummy_urb_enqueue() ошибочно полагал, что процедура колбэка еще не началась, хотя на самом деле она почти завершена. В результате hrtimer не перезапускался, что делало невозможным для драйвера извлечение (dequeue) URB, который был только что добавлен в очередь (enqueue). Это приводило к зависанию usb_kill_urb(), и ситуация усугублялась.
Поскольку в API hrtimers отсутствует функция для определения момента, когда таймер находится в очереди, а колбэк не выполняется, драйвер должен отслеживать это состояние самостоятельно. Именно это и делает данный патч, добавляя новый флаг «timer_pending» и устанавливая или сбрасывая его в соответствующие моменты времени.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.