CVE-2024-36896
📋 TL;DR
This CVE describes a NULL pointer dereference vulnerability in the Linux kernel's USB core subsystem. When a USB hub is concurrently removed while port device operations are being performed, the kernel can crash or become unstable due to accessing invalid memory. This affects all Linux systems with USB support.
💻 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 →⚠️ Risk & Real-World Impact
Worst Case
Kernel panic leading to system crash and denial of service, potentially allowing local privilege escalation if combined with other vulnerabilities.
Likely Case
System crash or kernel panic when USB devices are being hot-unplugged during port operations, causing denial of service.
If Mitigated
Minor system instability or crash limited to USB operations without broader system compromise.
🎯 Exploit Status
Exploitation requires local access and timing to trigger concurrent USB hub removal during port operations. Discovered through syzkaller fuzzing.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Kernel versions containing commits: 5f1d68ef5ddac27c6b997adccd1c339cef1e6848, 6119ef6517ce501fc548154691abdaf1f954a277, 63533549ff53d24daf47c443dbd43c308afc3434, a4b46d450c49f32e9d4247b421e58083fde304ce
Vendor Advisory: https://git.kernel.org/stable/c/5f1d68ef5ddac27c6b997adccd1c339cef1e6848
Restart Required: Yes
Instructions:
1. Update Linux kernel to version containing the fix commits. 2. Check your distribution's security advisories for specific patched kernel versions. 3. Reboot system after kernel update.
🔧 Temporary Workarounds
Disable USB hotplug
linuxPrevent USB device hot-unplugging to avoid triggering the race condition
echo 0 > /sys/bus/usb/drivers_autoprobe
echo 0 > /sys/bus/usb/devices/*/authorized
Remove USB kernel module
linuxUnload USB subsystem if not needed (drastic measure)
modprobe -r usbcore
modprobe -r usb-storage
modprobe -r usbhid
🧯 If You Can't Patch
- Restrict physical access to USB ports
- Implement strict change control for USB device connections
🔍 How to Verify
Check if Vulnerable:
Check kernel version and compare with patched versions from distribution advisories
Check Version:
uname -r
Verify Fix Applied:
Verify kernel version contains the fix commits: grep -q '5f1d68ef5ddac27c6b997adccd1c339cef1e6848' /proc/version_signature || uname -r
📡 Detection & Monitoring
Log Indicators:
- Kernel panic messages in /var/log/kern.log or dmesg
- NULL pointer dereference errors in kernel logs
- USB subsystem crash logs
Network Indicators:
- None - local vulnerability only
SIEM Query:
source="kernel" AND ("NULL pointer dereference" OR "usb_hub_to_struct_hub" OR "disable_store" OR "disable_show")
🔗 References
- https://git.kernel.org/stable/c/5f1d68ef5ddac27c6b997adccd1c339cef1e6848
- https://git.kernel.org/stable/c/6119ef6517ce501fc548154691abdaf1f954a277
- https://git.kernel.org/stable/c/63533549ff53d24daf47c443dbd43c308afc3434
- https://git.kernel.org/stable/c/a4b46d450c49f32e9d4247b421e58083fde304ce
- https://git.kernel.org/stable/c/5f1d68ef5ddac27c6b997adccd1c339cef1e6848
- https://git.kernel.org/stable/c/6119ef6517ce501fc548154691abdaf1f954a277
- https://git.kernel.org/stable/c/63533549ff53d24daf47c443dbd43c308afc3434
- https://git.kernel.org/stable/c/a4b46d450c49f32e9d4247b421e58083fde304ce