CVE-2025-71221

dmaengine: mmp_pdma: Fix race condition in mmp_pdma_residue()

State
Published
Severity
7.8 High
Published
Feb 14, 2026
Updated
Oct 15, 2026
Reserved
Feb 14, 2026

Read the record on cve.org

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.

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 1b38da264674d6a0fe26a63996b8f88b88c3da48 to before 3f0e0e2d9e752570041e95fd04635e2580097819Affected
  • 1b38da264674d6a0fe26a63996b8f88b88c3da48 to before dfb5e05227745de43b7fd589721817a4337c970dAffected
  • 1b38da264674d6a0fe26a63996b8f88b88c3da48 to before eba0c75670c022cb1f948600db972524bcfe8166Affected
  • 1b38da264674d6a0fe26a63996b8f88b88c3da48 to before fc023b8fab057f0c910856ff36d3e12a30b7af4aAffected
  • 1b38da264674d6a0fe26a63996b8f88b88c3da48 to before 9f665b3c3d9a168410251f27a5d019b7bf93185cAffected
  • 1b38da264674d6a0fe26a63996b8f88b88c3da48 to before a143545855bc2c6e1330f6f57ae375ac44af00a7Affected
LinuxLinux
  • 3.16Affected
  • before 3.16Not affected
  • 5.15.209 through 5.15.*Not affected
  • 6.1.167 through 6.1.*Not affected
  • 6.6.130 through 6.6.*Not affected
  • 6.12.78 through 6.12.*Not affected
  • 6.18.10 through 6.18.*Not affected
  • 6.19 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.