CVE-2026-16148 in ZephyrИнформация

Сводка

по VulDB • 14.09.2026

Драйвер контроллера USB устройства ITE it82xx2 инициализировал работу по обнаружению приостановки шины с помощью функции k_work_init_delayable(&priv->suspended_work, suspended_handler) внутри функции it82xx2_enable() (операции .enable драйвера) в файле drivers/usb/udc/udc_it82xx2.c. Этот элемент работы планируется на выполнение практически непрерывно, пока шина USB активна: обработчик прерываний планирует его снова при каждом кадре SOF, а функция suspended_handler() планирует сама себя, поэтому её узел таймаута обычно связан в списке таймаутов ядра / очереди ожидающих задач рабочего потока (workqueue).

Функция k_work_init_delayable() (kernel/work.c) безоговорочно перезаписывает всю структуру k_work_delayable, включая связи по времени ожидания и очередям, без проверки на занятость. Поскольку функция it82xx2_disable() не отменяет эту работу, нормальный цикл «отключение-включение» повторно запускает api->enable() (udc_enable() отвергает только избыточное включение, но не повторное после отключения) и заново инициализирует всё ещё ожидающую выполнение работу на месте, что приводит к повреждению связанных списков таймаутов ядра / очередей рабочего потока и вызывает панику ядра (kernel panic).

Внешний хост USB — например, хост, выполняющий отключение DFU для USB (dfu-util --detach) или принудительно вызывающий повторное подключение/сброс/перечисление устройств — управляет переходами udc_disable()/udc_enable() и контролирует тайминги приостановки/возобновления работы, поэтому он может обеспечить состояние «работа ожидает выполнения» в момент повторного включения. Это приводит к отказу в обслуживании (denial of service) без аутентификации (паника ядра), доступному через границу USB от съемного физически подключенного хоста, при этом не продемонстрировано никакого воздействия на конфиденциальность или целостность данных.

Исправление перемещает вызов k_work_init_delayable() в функцию однократной предварительной инициализации (preinit), чтобы работа инициализировалась ровно один раз, устраняя повторную инициализацию используемого элемента работы.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Ответственный

Zephyr

Резервировать

17.07.2026

Раскрытие

14.09.2026

Модерация

принято

Вход

VDB-403690

EPSS

0.00000

KEV

Нет

Деятельности

Очень низкий

Источники

Do you know our Splunk app?

Download it now for free!