CVE-2024-27435
📋 TL;DR
A deadlock vulnerability in the Linux kernel's NVMe driver prevents reconnection of admin queues when using NVMe over RDMA. This causes permanent connection failures even when remote targets and networks are functional. Systems using NVMe over RDMA in production environments are primarily affected.
💻 Affected Systems
- Linux kernel
📦 What is this software?
Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →⚠️ Risk & Real-World Impact
Worst Case
Permanent denial of service for NVMe storage access, requiring system reboot to restore functionality.
Likely Case
Intermittent or permanent NVMe storage connection failures during controller resets, disrupting storage operations.
If Mitigated
Minor performance impact during reconnection attempts with successful recovery after patch.
🎯 Exploit Status
Exploitation requires specific NVMe over RDMA configuration and timing conditions during controller resets.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Multiple stable kernel versions with commit hashes provided in references
Vendor Advisory: https://git.kernel.org/stable/c/149afee5c7418ec5db9d7387b9c9a5c1eb7ea2a8
Restart Required: Yes
Instructions:
1. Identify current kernel version. 2. Apply appropriate kernel patch from provided git commits. 3. Rebuild kernel if using custom build. 4. Reboot system to load patched kernel.
🔧 Temporary Workarounds
Disable NVMe over RDMA
linuxTemporarily disable NVMe/RDMA functionality to avoid the deadlock scenario
modprobe -r nvme-rdma
echo 'blacklist nvme-rdma' > /etc/modprobe.d/disable-nvme-rdma.conf
Avoid controller resets
linuxPrevent conditions that trigger controller resets during normal operations
🧯 If You Can't Patch
- Monitor NVMe connection status and implement automated recovery scripts for connection failures
- Implement redundant storage paths or failover mechanisms to maintain availability during NVMe disruptions
🔍 How to Verify
Check if Vulnerable:
Check if system uses NVMe over RDMA: 'lsmod | grep nvme_rdma' and check kernel version against patched versions
Check Version:
uname -r
Verify Fix Applied:
Verify kernel version includes one of the fix commits: 'uname -r' and check git log for commit hashes
📡 Detection & Monitoring
Log Indicators:
- Kernel logs showing NVMe admin queue reconnection failures
- dmesg entries about NVMe controller reset issues
Network Indicators:
- RDMA connection establishment failures
- NVMe admin command timeouts
SIEM Query:
source="kernel" AND "nvme" AND ("reconnect failed" OR "admin_q" OR "tag allocation")
🔗 References
- https://git.kernel.org/stable/c/149afee5c7418ec5db9d7387b9c9a5c1eb7ea2a8
- https://git.kernel.org/stable/c/262da920896e2f2ab0e3947d9dbee0aa09045818
- https://git.kernel.org/stable/c/6851778504cdb49431809b4ba061903d5f592c96
- https://git.kernel.org/stable/c/de105068fead55ed5c07ade75e9c8e7f86a00d1d
- https://git.kernel.org/stable/c/ff2f90f88d78559802466ad1c84ac5bda4416b3a
- https://git.kernel.org/stable/c/149afee5c7418ec5db9d7387b9c9a5c1eb7ea2a8
- https://git.kernel.org/stable/c/262da920896e2f2ab0e3947d9dbee0aa09045818
- https://git.kernel.org/stable/c/6851778504cdb49431809b4ba061903d5f592c96
- https://git.kernel.org/stable/c/de105068fead55ed5c07ade75e9c8e7f86a00d1d
- https://git.kernel.org/stable/c/ff2f90f88d78559802466ad1c84ac5bda4416b3a