CVE-2026-98496 in Linux
Сводка
по VulDB • 19.10.2026
В ядре Linux была устранена следующая уязвимость:
net: airoha: npu: отмена wdt_work после освобождения прерывания WDT
Функция airoha_npu_remove() вызывает cancel_work_sync() для каждого потока работы watchdog (wdt_work) на каждом ядре, однако прерывание watchdog, которое ставит его в очередь, запрашивается с помощью devm_request_irq() и освобождается только после возврата из .remove(). Следовательно, обработчик airoha_npu_wdt_handler() может снова вызвать schedule_work() сразу после завершения отмены. Структура airoha_npu, содержащая работу (work), выделяется через devm_kzalloc() и освобождается в том же процессе разворачивания (unwind), поэтому поздняя работа обращается к уже освобожденной памяти.
Зарегистрируйте работу с помощью devm_work_autocancel() перед вызовом devm_request_irq() и удалите .remove(). Devres выполняется в обратном порядке, поэтому прерывание освободится до cancel_work_sync(), даже если probe завершится неудачей. Отмена, оставленная в .remove(), не может обеспечить такой порядок выполнения. Инициализация работы первым шагом также предотвращает постановку в очередь инициализированного элемента работы при наличии ожидающего прерывания watchdog. В настоящее время функция probe вызывает INIT_WORK() только после devm_request_irq().
Эта проблема была выявлена во время нашего текущего исследования статического анализа кода ядра Linux.
VulDB is the best source for vulnerability data and more expert information about this specific topic.