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.
Published: 2026-10-18
Score: 4.1 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Use‑after‑free risk of kernel crash and potential code execution
Action: Immediate Patch
AI Analysis

Impact

The Linux kernel’s Airoha NPU driver contains a use‑after‑free flaw. When the device is removed, cancel_work_sync is called after the watchdog IRQ has already been freed with devm_request_irq, yet the IRQ handler can still schedule the same work descriptor again. Because the work structure resides in a devm_kzalloc buffer that is deallocated during the same cleanup, the queued work may execute on freed memory. This condition can corrupt kernel memory and crash the system; based on the description it could also allow arbitrary code execution if an attacker can trigger the out‑of‑order execution—this possible exploitation scenario is inferred from the supplied comments.

Affected Systems

All Linux kernel builds that include the Airoha NPU driver are potentially vulnerable. The CVE text does not list specific kernel versions, so any system running a kernel with the unpatched airoha_npu_remove implementation following the described sequence may be exposed.

Risk and Exploitability

The CVSS score of 4.1 indicates moderate severity, and the EPSS score is below 1%, implying a low probability of exploitation. The vulnerability is not listed in CISA’s KEV catalog, suggesting no known active exploits. Exploitation would require provoking a watchdog interrupt after the device’s resources have been torn down, which generally demands privileged kernel access or an additional flaw that permits kernel code execution. Consequently, while the bug represents a serious kernel fault, its practical exploitability is limited without elevated privileges and it is unlikely to be observed in the wild currently.

Generated by OpenCVE AI on October 22, 2026 at 22:32 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update to a Linux kernel version that includes the fix, which registers the watchdog work with devm_work_autocancel before requesting the IRQ and removes the cancel logic from .remove().
  • If a kernel upgrade cannot be performed immediately, stop loading the Airoha NPU driver or disable the watchdog feature to prevent the use‑after‑free from being triggered.
  • As a temporary safeguard, ensure that any Airoha NPU hardware on the system is powered off or disconnected until a patched kernel is available.

Generated by OpenCVE AI on October 22, 2026 at 22:32 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 21 Oct 2026 00:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-825
References
Metrics threat_severity

None

cvssV3_1

{'score': 4.1, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Sun, 18 Oct 2026 18:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Sun, 18 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
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.
Title net: airoha: npu: cancel wdt_work after releasing the WDT IRQ
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-19T09:20:33.996Z

Reserved: 2026-09-25T10:25:14.353Z

Link: CVE-2026-98496

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:17:00.590

Modified: 2026-10-19T10:19:02.170

Link: CVE-2026-98496

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-18T00:00:00Z

Links: CVE-2026-98496 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-22T22:45:13Z

Weaknesses