Linux kernel
cpe:2.3:a:linux:linux_kernel:*:*:*:*:*:*:*, +4 more
A race condition vulnerability has been identified in the Linux kernel's DMA engine, specifically within the MMP PDMA (Parallel DMA) driver. This vulnerability allows for a use-after-free condition when accessing the descriptor list and its contents. The issue arises because multiple threads can call the 'tx_status()' function simultaneously, while a tasklet on another CPU is in the process of freeing completed descriptors. The lack of proper locking mechanisms enables one thread to access a descriptor that has already been freed, leading to potential memory corruption or exploitation.
Exploitation of this vulnerability causes a use-after-free condition, where a thread accesses memory that has already been freed, potentially leading to memory corruption or arbitrary code execution.
The vulnerability can be reproduced by running 'dmatest' on the same DMA channel with multiple threads (threads_per_chan greater than 1).
The vulnerability has been addressed by adding proper locking in the 'mmp_pdma_residue()' function to synchronize access to the descriptor list and prevent the use-after-free condition. Users should upgrade to the latest version of the Linux kernel where this fix has been applied.
Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.