CVE-2024-36930
📋 TL;DR
A null pointer dereference vulnerability in the Linux kernel's SPI subsystem allows local attackers to cause a kernel panic (denial of service) by reusing SPI messages with non-empty queues. This affects systems using SPI devices with the vulnerable kernel code, primarily embedded systems and IoT devices.
💻 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 →⚠️ Risk & Real-World Impact
Worst Case
Kernel panic leading to system crash and denial of service, potentially disrupting critical operations on affected devices.
Likely Case
System crash or instability when SPI operations are performed under specific conditions, requiring reboot to restore functionality.
If Mitigated
No impact if patched or if SPI subsystem is not used in the system configuration.
🎯 Exploit Status
Requires local access and ability to trigger specific SPI operations. No public exploit code identified.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Patched in kernel stable branches via commits: 2070d008cc08bff50a58f0f4d30f12d3ebf94c00, 4756fa529b2f12b7cb8f21fe229b0f6f47190829, a30659f1576d2c8e62e7426232bb18b885fd951a, e005d6754e3e440257006795b687c4ad8733b493
Vendor Advisory: https://git.kernel.org/stable/c/2070d008cc08bff50a58f0f4d30f12d3ebf94c00
Restart Required: Yes
Instructions:
1. Update Linux kernel to patched version from your distribution's repositories. 2. Rebuild kernel if using custom build. 3. Reboot system to load new kernel.
🔧 Temporary Workarounds
Disable SPI devices if not needed
linuxRemove or disable SPI device drivers if not required for system operation
modprobe -r [spi_driver_module]
echo 'blacklist [spi_driver_module]' > /etc/modprobe.d/disable-spi.conf
🧯 If You Can't Patch
- Restrict local user access to systems using SPI devices
- Implement strict process isolation and privilege separation to limit who can access SPI operations
🔍 How to Verify
Check if Vulnerable:
Check kernel version and verify if SPI subsystem is in use. Vulnerable if using affected kernel with SPI devices.
Check Version:
uname -r
Verify Fix Applied:
Verify kernel version includes the fix commits or is newer than patched versions. Check that SPI operations no longer crash when message reuse occurs.
📡 Detection & Monitoring
Log Indicators:
- Kernel panic messages in /var/log/kern.log or dmesg
- SPI subsystem error messages
- System crash/reboot events
Network Indicators:
- None - local vulnerability only
SIEM Query:
source="kernel" AND ("panic" OR "Oops" OR "null pointer dereference") AND "spi"
🔗 References
- https://git.kernel.org/stable/c/2070d008cc08bff50a58f0f4d30f12d3ebf94c00
- https://git.kernel.org/stable/c/4756fa529b2f12b7cb8f21fe229b0f6f47190829
- https://git.kernel.org/stable/c/a30659f1576d2c8e62e7426232bb18b885fd951a
- https://git.kernel.org/stable/c/e005d6754e3e440257006795b687c4ad8733b493
- https://git.kernel.org/stable/c/2070d008cc08bff50a58f0f4d30f12d3ebf94c00
- https://git.kernel.org/stable/c/4756fa529b2f12b7cb8f21fe229b0f6f47190829
- https://git.kernel.org/stable/c/a30659f1576d2c8e62e7426232bb18b885fd951a
- https://git.kernel.org/stable/c/e005d6754e3e440257006795b687c4ad8733b493