Monitor vulnerabilities like this one. Sign up free to get alerted when software you use is affected.

Linux Kernel: DMA Engine May Crash When Multiple Threads Run

CVE-2025-71221
Summary

A bug in the Linux kernel's DMA (Direct Memory Access) engine can cause a crash when multiple threads are running on the same channel. This is fixed in a recent update, so you should apply the latest kernel patches to prevent potential crashes. If you're not already using the updated kernel, update to the latest version as soon as possible.

Original title
In the Linux kernel, the following vulnerability has been resolved: dmaengine: mmp_pdma: Fix race condition in mmp_pdma_residue() Add proper locking in mmp_pdma_residue() to prevent use-after-fre...
Original description
In the Linux kernel, the following vulnerability has been resolved:

dmaengine: mmp_pdma: Fix race condition in mmp_pdma_residue()

Add proper locking in mmp_pdma_residue() to prevent use-after-free when
accessing descriptor list and descriptor contents.

The race occurs when multiple threads call tx_status() while the tasklet
on another CPU is freeing completed descriptors:

CPU 0 CPU 1
----- -----
mmp_pdma_tx_status()
mmp_pdma_residue()
-> NO LOCK held
list_for_each_entry(sw, ..)
DMA interrupt
dma_do_tasklet()
-> spin_lock(&desc_lock)
list_move(sw->node, ...)
spin_unlock(&desc_lock)
| dma_pool_free(sw) <- FREED!
-> access sw->desc <- UAF!

This issue can be reproduced when running dmatest on the same channel with
multiple threads (threads_per_chan > 1).

Fix by protecting the chain_running list iteration and descriptor access
with the chan->desc_lock spinlock.
Published: 14 Feb 2026 · Updated: 10 Mar 2026 · First seen: 6 Mar 2026