Linux · Linux Kernel · CVE-2024-47143
Name of the Vulnerable Software and Affected Versions:
Linux kernel versions prior to 6.6.74
Description:
A possible deadlock scenario can occur when the dma debug API is called while holding `rq lock()`. This happens because `radix lock()` is held while holding `dma hash entry[idx].lock`. The situation can arise in two ways: when extending the radix tree and trying to wake up kswapd via `wake all kswapd()`, or when a dma sync operation is called while deleting `perf event` using `etm` and `etr` tmc, which are Arm Coresight hwtracing driver backends.
Recommendations:
To resolve the issue, update to Linux kernel version 6.6.74 or later. As a temporary workaround, consider modifying the `check unmap()` function to call `dma entry free()` after `put hash bucket()` to avoid the possible deadlock scenario.