CVE-2024-42277
📋 TL;DR
A NULL pointer dereference vulnerability in the Linux kernel's Spreadtrum IOMMU driver allows local attackers to cause a kernel panic or system crash. This affects Linux systems using the sprd-iommu driver, primarily on devices with Spreadtrum chipsets. Attackers need local access to trigger the vulnerability.
💻 Affected Systems
- Linux kernel with Spreadtrum IOMMU driver (sprd-iommu)
📦 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 →⚠️ Risk & Real-World Impact
Worst Case
Kernel panic leading to denial of service (system crash), potentially causing data loss or service disruption.
Likely Case
Local denial of service through kernel panic when the vulnerable cleanup function is called.
If Mitigated
Minimal impact with proper access controls preventing local attackers from reaching the vulnerable code path.
🎯 Exploit Status
Exploitation requires local access and ability to trigger the sprd_iommu_cleanup() function. No authentication bypass needed beyond local access.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Fixed in kernel commits: 630482ee0653decf9e2482ac6181897eb6cde5b8, 8c79ceb4ecf823e6ec10fee6febb0fca3de79922, b62841e49a2b7938f6fdeaaf93fb57e4eb880bdb, d5fe884ce28c5005f8582c35333c195a168f841c, dfe90030a0cfa26dca4cb6510de28920e5ad22fb
Vendor Advisory: https://git.kernel.org/stable/c/630482ee0653decf9e2482ac6181897eb6cde5b8
Restart Required: Yes
Instructions:
1. Update Linux kernel to version containing the fix commits. 2. Rebuild kernel if compiling from source. 3. Reboot system to load patched kernel.
🔧 Temporary Workarounds
Disable Spreadtrum IOMMU driver
linuxRemove or blacklist the sprd-iommu driver if not required for system functionality
echo 'blacklist sprd-iommu' >> /etc/modprobe.d/blacklist.conf
rmmod sprd_iommu
🧯 If You Can't Patch
- Restrict local access to prevent unauthorized users from triggering the vulnerability
- Implement strict process isolation and limit access to kernel interfaces
🔍 How to Verify
Check if Vulnerable:
Check if sprd-iommu driver is loaded: lsmod | grep sprd_iommu
Check Version:
uname -r
Verify Fix Applied:
Check kernel version includes fix commits or verify sprd_iommu driver version
📡 Detection & Monitoring
Log Indicators:
- Kernel panic messages in /var/log/kern.log or dmesg
- NULL pointer dereference errors mentioning sprd_iommu
Network Indicators:
- No network indicators - local vulnerability only
SIEM Query:
source="kernel" AND ("NULL pointer dereference" OR "kernel panic") AND "sprd_iommu"
🔗 References
- https://git.kernel.org/stable/c/630482ee0653decf9e2482ac6181897eb6cde5b8
- https://git.kernel.org/stable/c/8c79ceb4ecf823e6ec10fee6febb0fca3de79922
- https://git.kernel.org/stable/c/b62841e49a2b7938f6fdeaaf93fb57e4eb880bdb
- https://git.kernel.org/stable/c/d5fe884ce28c5005f8582c35333c195a168f841c
- https://git.kernel.org/stable/c/dfe90030a0cfa26dca4cb6510de28920e5ad22fb
- https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html