CVE-2024-47143

dma-debug: fix a possible deadlock on radix_lock

State
Published
Severity
5.5 Medium
Published
Jan 11, 2025
Updated
May 11, 2026
Reserved
Jan 9, 2025

Read the record on cve.org

Description

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

dma-debug: fix a possible deadlock on radix_lock

radix_lock() shouldn't be held while holding dma_hash_entry[idx].lock otherwise, there's a possible deadlock scenario when dma debug API is called holding rq_lock():

CPU0 CPU1 CPU2 dma_free_attrs() check_unmap() add_dma_entry() __schedule() //out (A) rq_lock() get_hash_bucket() (A) dma_entry_hash check_sync() (A) radix_lock() (W) dma_entry_hash dma_entry_free() (W) radix_lock() // CPU2's one (W) rq_lock()

CPU1 situation can happen when it extending radix tree and it tries to wake up kswapd via wake_all_kswapd().

CPU2 situation can happen while perf_event_task_sched_out() (i.e. dma sync operation is called while deleting perf_event using etm and etr tmc which are Arm Coresight hwtracing driver backends).

To remove this possible situation, call dma_entry_free() after put_hash_bucket() in check_unmap().

Scores

CVSSScoreVectorSource
3.15.5 MediumCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:HCISA-ADP

Weaknesses

Affected Products

ProductVersions
LinuxLinux
  • 0abdd7a81b7e3fd781d7fabcca49501852bba17e to before 3ccce34a5c3f5c9541108a451657ade621524b32Affected
  • 0abdd7a81b7e3fd781d7fabcca49501852bba17e to before efe1b9bbf356357fdff0399af361133d6e3ba18eAffected
  • 0abdd7a81b7e3fd781d7fabcca49501852bba17e to before 8c1b4fea8d62285f5e1a8194889b39661608bd8aAffected
  • 0abdd7a81b7e3fd781d7fabcca49501852bba17e to before c212d91070beca0d03fef7bf988baf4ff4b3eee4Affected
  • 0abdd7a81b7e3fd781d7fabcca49501852bba17e to before f2b95248a16c5186d1c658fc0aeb2f3bd95e5259Affected
  • 0abdd7a81b7e3fd781d7fabcca49501852bba17e to before 7543c3e3b9b88212fcd0aaf5cab5588797bdc7deAffected
LinuxLinux
  • 3.14Affected
  • before 3.14Not affected
  • 5.10.231 through 5.10.*Not affected
  • 5.15.174 through 5.15.*Not affected
  • 6.1.120 through 6.1.*Not affected
  • 6.6.66 through 6.6.*Not affected
  • 6.12.5 through 6.12.*Not affected
  • 6.13 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.