{"id":"CVE-2024-47143","state":"PUBLISHED","title":"dma-debug: fix a possible deadlock on radix_lock","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ndma-debug: fix a possible deadlock on radix_lock\n\nradix_lock() shouldn't be held while holding dma_hash_entry[idx].lock\notherwise, there's a possible deadlock scenario when\ndma debug API is called holding rq_lock():\n\nCPU0                   CPU1                       CPU2\ndma_free_attrs()\ncheck_unmap()          add_dma_entry()            __schedule() //out\n                                                  (A) rq_lock()\nget_hash_bucket()\n(A) dma_entry_hash\n                                                  check_sync()\n                       (A) radix_lock()           (W) dma_entry_hash\ndma_entry_free()\n(W) radix_lock()\n                       // CPU2's one\n                       (W) rq_lock()\n\nCPU1 situation can happen when it extending radix tree and\nit tries to wake up kswapd via wake_all_kswapd().\n\nCPU2 situation can happen while perf_event_task_sched_out()\n(i.e. dma sync operation is called while deleting perf_event using\n etm and etr tmc which are Arm Coresight hwtracing driver backends).\n\nTo remove this possible situation, call dma_entry_free() after\nput_hash_bucket() in check_unmap().","publishedAt":"2025-01-11T12:25:13.561Z","updatedAt":"2026-05-11T20:38:13.920Z","severity":{"score":5.5,"label":"Medium","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","source":"CISA-ADP"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"0abdd7a81b7e3fd781d7fabcca49501852bba17e","status":"affected","lessThan":"3ccce34a5c3f5c9541108a451657ade621524b32","versionType":"git"},{"version":"0abdd7a81b7e3fd781d7fabcca49501852bba17e","status":"affected","lessThan":"efe1b9bbf356357fdff0399af361133d6e3ba18e","versionType":"git"},{"version":"0abdd7a81b7e3fd781d7fabcca49501852bba17e","status":"affected","lessThan":"8c1b4fea8d62285f5e1a8194889b39661608bd8a","versionType":"git"},{"version":"0abdd7a81b7e3fd781d7fabcca49501852bba17e","status":"affected","lessThan":"c212d91070beca0d03fef7bf988baf4ff4b3eee4","versionType":"git"},{"version":"0abdd7a81b7e3fd781d7fabcca49501852bba17e","status":"affected","lessThan":"f2b95248a16c5186d1c658fc0aeb2f3bd95e5259","versionType":"git"},{"version":"0abdd7a81b7e3fd781d7fabcca49501852bba17e","status":"affected","lessThan":"7543c3e3b9b88212fcd0aaf5cab5588797bdc7de","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["kernel/dma/debug.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.14","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.14","versionType":"semver"},{"version":"5.10.231","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.174","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.120","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.66","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.5","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.13","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["kernel/dma/debug.c"]}],"references":["https://git.kernel.org/stable/c/3ccce34a5c3f5c9541108a451657ade621524b32","https://git.kernel.org/stable/c/efe1b9bbf356357fdff0399af361133d6e3ba18e","https://git.kernel.org/stable/c/8c1b4fea8d62285f5e1a8194889b39661608bd8a","https://git.kernel.org/stable/c/c212d91070beca0d03fef7bf988baf4ff4b3eee4","https://git.kernel.org/stable/c/f2b95248a16c5186d1c658fc0aeb2f3bd95e5259","https://git.kernel.org/stable/c/7543c3e3b9b88212fcd0aaf5cab5588797bdc7de","https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html","https://lists.debian.org/debian-lts-announce/2025/03/msg00002.html"],"weaknesses":["CWE-667"],"ingestedAt":"2026-10-29T20:07:56.516Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2024/47xxx/CVE-2024-47143.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2024-47143","state":"PUBLISHED","datePublished":"2025-01-11T12:25:13.561Z","dateUpdated":"2026-05-11T20:38:13.920Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-01-09T09:49:29.749Z"},"containers":{"cna":{"title":"dma-debug: fix a possible deadlock on radix_lock","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ndma-debug: fix a possible deadlock on radix_lock\n\nradix_lock() shouldn't be held while holding dma_hash_entry[idx].lock\notherwise, there's a possible deadlock scenario when\ndma debug API is called holding rq_lock():\n\nCPU0                   CPU1                       CPU2\ndma_free_attrs()\ncheck_unmap()          add_dma_entry()            __schedule() //out\n                                                  (A) rq_lock()\nget_hash_bucket()\n(A) dma_entry_hash\n                                                  check_sync()\n                       (A) radix_lock()           (W) dma_entry_hash\ndma_entry_free()\n(W) radix_lock()\n                       // CPU2's one\n                       (W) rq_lock()\n\nCPU1 situation can happen when it extending radix tree and\nit tries to wake up kswapd via wake_all_kswapd().\n\nCPU2 situation can happen while perf_event_task_sched_out()\n(i.e. dma sync operation is called while deleting perf_event using\n etm and etr tmc which are Arm Coresight hwtracing driver backends).\n\nTo remove this possible situation, call dma_entry_free() after\nput_hash_bucket() in check_unmap()."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"0abdd7a81b7e3fd781d7fabcca49501852bba17e","status":"affected","lessThan":"3ccce34a5c3f5c9541108a451657ade621524b32","versionType":"git"},{"version":"0abdd7a81b7e3fd781d7fabcca49501852bba17e","status":"affected","lessThan":"efe1b9bbf356357fdff0399af361133d6e3ba18e","versionType":"git"},{"version":"0abdd7a81b7e3fd781d7fabcca49501852bba17e","status":"affected","lessThan":"8c1b4fea8d62285f5e1a8194889b39661608bd8a","versionType":"git"},{"version":"0abdd7a81b7e3fd781d7fabcca49501852bba17e","status":"affected","lessThan":"c212d91070beca0d03fef7bf988baf4ff4b3eee4","versionType":"git"},{"version":"0abdd7a81b7e3fd781d7fabcca49501852bba17e","status":"affected","lessThan":"f2b95248a16c5186d1c658fc0aeb2f3bd95e5259","versionType":"git"},{"version":"0abdd7a81b7e3fd781d7fabcca49501852bba17e","status":"affected","lessThan":"7543c3e3b9b88212fcd0aaf5cab5588797bdc7de","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["kernel/dma/debug.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.14","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.14","versionType":"semver"},{"version":"5.10.231","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.174","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.120","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.66","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.5","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.13","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["kernel/dma/debug.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/3ccce34a5c3f5c9541108a451657ade621524b32"},{"url":"https://git.kernel.org/stable/c/efe1b9bbf356357fdff0399af361133d6e3ba18e"},{"url":"https://git.kernel.org/stable/c/8c1b4fea8d62285f5e1a8194889b39661608bd8a"},{"url":"https://git.kernel.org/stable/c/c212d91070beca0d03fef7bf988baf4ff4b3eee4"},{"url":"https://git.kernel.org/stable/c/f2b95248a16c5186d1c658fc0aeb2f3bd95e5259"},{"url":"https://git.kernel.org/stable/c/7543c3e3b9b88212fcd0aaf5cab5588797bdc7de"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T20:38:13.920Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.14","versionEndExcluding":"5.10.231"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.14","versionEndExcluding":"5.15.174"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.14","versionEndExcluding":"6.1.120"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.14","versionEndExcluding":"6.6.66"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.14","versionEndExcluding":"6.12.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.14","versionEndExcluding":"6.13"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":5.5,"attackVector":"LOCAL","baseSeverity":"MEDIUM","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","integrityImpact":"NONE","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"HIGH","privilegesRequired":"LOW","confidentialityImpact":"NONE"}},{"other":{"type":"ssvc","content":{"id":"CVE-2024-47143","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2025-10-01T19:55:51.622689Z"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-667","lang":"en","type":"CWE","description":"CWE-667 Improper Locking"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2025-10-01T19:57:22.563Z"}},{"title":"CVE Program Container","references":[{"url":"https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html"},{"url":"https://lists.debian.org/debian-lts-announce/2025/03/msg00002.html"}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2025-11-03T20:39:31.851Z"}}]}}}