Description
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.
Published: 2026-10-06
Score: 7.0 High
EPSS: < 1% Very Low
KEV: No
Impact: Use‑After‑Free leading to kernel memory corruption
Action: Immediate Patch
AI Analysis

Impact

An RCU reader traverses the dma_device list while a device is being unlinked and freed without a grace period. This race condition leaves a dangling pointer that an attacker could dereference, causing a use‑after‑free and kernel memory corruption. The weakness is classified as a use‑after‑free flaw (CWE‑825).

Affected Systems

All Linux kernel builds that expose the dmaengine subsystem before the upstream patch that inserts synchronize_rcu() before freeing the device are affected. Mainstream distributions and custom kernels that have not incorporated the fix, including any module that interacts with dmaengine without proper reference counting, remain vulnerable. Kernel releases prior to the synchronization change are at risk.

Risk and Exploitability

The CVSS score of 7.0 indicates moderate‑to‑high risk, while the EPSS score of less than 1% suggests low current exploitation probability. The vulnerability is not listed in CISA’s KEV catalog. The likely attack vector involves an attacker who can control when a dma_device is released, such as by unloading a kernel module that interacts with dmaengine, while RCU readers are still active. Based on the description, it is inferred that a privileged or compromised environment is required to orchestrate the race; actual exploitation would result in kernel memory corruption that could lead to privilege escalation or denial of service.

Generated by OpenCVE AI on October 11, 2026 at 05:36 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply a kernel update that contains the synchronize_rcu() fix for dma_device release, such as upgrading to a recent stable release from your distribution or applying the upstream patch directly.
  • Reboot the system after the patch so that any lingering RCU readers are terminated and the kernel state is clean.
  • If an immediate kernel update is not possible, temporarily disable or unbind non‑essential dmaengine drivers to reduce the attack surface and monitor module activity for unload events.

Generated by OpenCVE AI on October 11, 2026 at 05:36 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4841-1 linux security update
Debian DLA Debian DLA DLA-4850-1 linux-6.12 security update
Debian DSA Debian DSA DSA-6568-1 linux security update
History

Sun, 11 Oct 2026 02:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Sun, 11 Oct 2026 00:30:00 +0000

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

None

cvssV3_1

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

threat_severity

Moderate


Wed, 07 Oct 2026 04:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Tue, 06 Oct 2026 21:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Tue, 06 Oct 2026 14:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Tue, 06 Oct 2026 09:00:00 +0000

Type Values Removed Values Added
Description 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.
Title dmaengine: wait for RCU readers before releasing dma_device
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:17:53.321Z

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

Link: CVE-2026-98342

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-06T09:18:27.003

Modified: 2026-10-19T10:18:36.560

Link: CVE-2026-98342

cve-icon Redhat

Severity : Moderate

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

Links: CVE-2026-98342 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-11T05:45:16Z

Weaknesses
  • CWE-825

    Expired Pointer Dereference