Linux kernel
cpe:2.3:a:linux:linux_kernel:*:*:*:*:*:*:*, +3 more
- ~7.0.0-rc3nvme+
A vulnerability exists in the Linux kernel's NVM Express (NVMe) subsystem, specifically within the NVMe over TCP implementation. The issue arises in the asynchronous event handling of NVMe controllers, which can lead to a deadlock situation. When the NVMe TCP release queue work is processed, it can inadvertently drop the last reference to the controller. This action triggers the controller's cleanup routine, which attempts to flush pending asynchronous events on the same workqueue. Such a flush is unnecessary and can cause a recursive locking problem, as the workqueue is already engaged in processing the release work, creating a potential deadlock scenario.
Exploitation of this vulnerability can cause a deadlock in the NVMe workqueue, where the system becomes unresponsive due to conflicting lock management. This issue was observed in Linux kernel version 7.0.0-rc3.
The vulnerability can be reproduced by running the NVMe test suite, specifically the 'nvme/003' test, which exercises the NVMe over TCP functionality. This test triggers the asynchronous event handling that leads to the deadlock condition.
The vulnerability has been addressed by modifying the controller cleanup process to cancel pending asynchronous event work without causing a recursive flush, ensuring proper workqueue management. Users should upgrade to the latest stable 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.