CVE-2026-98342

CVE-2026-98342

published October 6, 2026

CVSS
—
EPSS
0%
Percentile
7.6
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

dmaengine: wait for RCU readers before releasing dma_device

dma_issue_pending_all() walks the dma_device_list with

list_for_each_entry_rcu() under rcu_read_lock(). dma_device_release()

unlinks the device with list_del_rcu() and then calls

device->device_release() (which in many drivers, such as plx_dma.c,

directly calls kfree()).

Because there is no grace period between unlinking the device and

freeing it, concurrent RCU readers in dma_issue_pending_all() can

access the device after it has been freed.

The lockless walk originally relied on clients holding a dmaengine

reference to pin the provider module, and therefore the device, for as

long as they might traverse the list. Commit 8ad342a86359 ("dmaengine:

Add reference counting to dma_device struct") decoupled the dma_device

lifetime from the module reference, so the device can now be released

while a reader is still walking the list.

Add synchronize_rcu() before the device is freed, so RCU readers are

guaranteed to have finished. Keep it unconditional: providers that do

not implement device_release() free the device themselves once

dma_async_device_unregister() returns. This call will delay for a grace

period with dma_list_mutex held, which is safe and only teardown path is

delayed.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00184 · 7.6th percentile
Published
2026-10-06T13:18Z
References (8)
EPSS history
Timeline
  • 07 OCT 03:43Z
    EPSS moved — → 0%
    epss
  • 06 OCT 08:46Z
    dmaengine: wait for RCU readers before releasing dma_device
    cvelistv5