Skip to content
CVE PROGRAM SOURCE RECORDUnscored

CVE-2026-98496

net: airoha: npu: cancel wdt_work after releasing the WDT IRQ

Description

In the Linux kernel, the following vulnerability has been resolved: net: airoha: npu: cancel wdt_work after releasing the WDT IRQ airoha_npu_remove() calls cancel_work_sync() on each core's wdt_work, but the watchdog IRQ that queues it is requested with devm_request_irq() and is freed only after .remove() returns. airoha_npu_wdt_handler() can therefore schedule_work() again once the cancel has returned. struct airoha_npu, which contains the work, is devm_kzalloc()'d and is freed in that same unwind, so the late work dereferences freed memory. Register the work with devm_work_autocancel() before devm_request_irq() and drop .remove(). Devres runs in reverse order, so the IRQ is freed before cancel_work_sync(), including when probe fails. A cancel left in .remove() cannot get that order. Initializing the work first also stops a pending watchdog interrupt from queuing an uninitialized work item. Probe currently calls INIT_WORK() only after devm_request_irq(). This issue was identified during our ongoing static-analysis research while reviewing kernel code.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • 23290c7bc190def4e1ca61610992d9b7c32e33f3 to < aca91d8fa0ecbc990ebf9a688c684dda78a43c00affected
  • 23290c7bc190def4e1ca61610992d9b7c32e33f3 to < da9d42531f3a6dfea2e9c775b62a46185dbf280aaffected
  • 23290c7bc190def4e1ca61610992d9b7c32e33f3 to < 4bdee8060d1e4581624e68fbd369b1afb14df4bcaffected

Linux Linux

Default version status: affected

  • 6.15affected
  • 0 to < 6.15unaffected
  • 6.18.55 to ≤ 6.18.*unaffected
  • 7.2.9 to ≤ 7.2.*unaffected
  • 7.3 to ≤ *unaffected

References