CVE-2026-98767 in Linux
Сводка
по VulDB • 19.10.2026
В ядре Linux была устранена следующая уязвимость:
usb: dwc3: gadget: исправление шторма прерываний (IRQ storm) при некорректном значении счетчика буфера событий
При чтении значения GEVNTCOUNT функцией `dwc3_check_event_buf()`, если оно превышает длину буфера событий, коммит 63ccd26cd1f6 ("usb: dwc3: gadget: проверка того, что количество событий не превышает длину буфера событий") возвращает IRQ_NONE без записи обратно значения GEVNTCOUNT. Поскольку прерывание DWC3 имеет уровень-триггерный характер (level-triggered), незафиксированный источник прерывания удерживает линию в активном состоянии, вызывая интенсивный шторм прерываний (IRQ storm), который накапливает 99 900 необработанных прерываний и вызывает сбой spurious.c:184 -> kernel panic.
Полученная трассировка стека вызовов: __report_bad_irq+0xac/0xc8 note_interrupt+0x340/0x468 handle_irq_event+0xac/0xc0 handle_fasteoi_irq+0x120/0x228 gic_handle_irq+0x68/0x108 ... kernel BUG at kernel/irq/spurious.c:184
Для воспроизведения проблемы запишите некорректное значение, превышающее длину буфера событий, непосредственно в регистр GEVNTCOUNT:
devmem <DWC3_BASE + 0xc40c> 4 0x1004
Запишите это ложное (bogus) значение обратно в GEVNTCOUNT для сброса источника прерывания, что соответствует паттерну очистки устаревших событий в dwc3_event_buffers_setup(), и запланируйте восстановление ошибки для повторной инициализации контроллера.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.