CVE-2024-47682
📋 TL;DR
This CVE describes an off-by-one buffer overflow vulnerability in the Linux kernel's SCSI subsystem. When a device returns a specific SCSI page with length 8, the sd_read_block_characteristics() function may attempt to access memory outside the allocated buffer, potentially leading to kernel crashes or local privilege escalation. This affects Linux systems using SCSI storage devices, particularly in virtualized environments like QEMU.
💻 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 →⚠️ Risk & Real-World Impact
Worst Case
Local privilege escalation to root, kernel panic leading to denial of service, or potential arbitrary code execution in kernel context.
Likely Case
Kernel panic causing system crash/reboot when accessing specific SCSI devices, particularly in virtualized environments.
If Mitigated
System remains stable if vulnerable code path isn't triggered by specific SCSI device responses.
🎯 Exploit Status
Requires ability to present malicious SCSI device responses, which could be achieved through virtualized storage or compromised hardware. Exploitation requires specific conditions to trigger the vulnerable code path.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Patches available in kernel stable trees (commits referenced in CVE)
Vendor Advisory: https://git.kernel.org/stable/c/413df704f149dec585df07466d2401bbd1f490a0
Restart Required: Yes
Instructions:
1. Update Linux kernel to patched version from your distribution's repositories. 2. For custom kernels, apply patches from kernel.org stable trees. 3. Reboot system to load new kernel.
🔧 Temporary Workarounds
Disable SCSI zoned block device support
linuxPrevent vulnerable code path by disabling zoned block device feature if not required
echo 0 > /sys/module/sd_mod/parameters/zoned
Avoid vulnerable QEMU versions
linuxUse QEMU versions that don't trigger the specific page length condition
🧯 If You Can't Patch
- Restrict access to SCSI devices to trusted users only
- Monitor for kernel panic/crash events related to SCSI operations
🔍 How to Verify
Check if Vulnerable:
Check kernel version and if SCSI storage is in use. Vulnerable if using affected kernel with SCSI devices.
Check Version:
uname -r
Verify Fix Applied:
Verify kernel version is updated beyond patch commits. Check dmesg for SCSI-related errors after patch.
📡 Detection & Monitoring
Log Indicators:
- Kernel panic messages
- SCSI error logs
- Out of bounds memory access warnings in kernel logs
Network Indicators:
- Not applicable - local vulnerability
SIEM Query:
source="kernel" AND ("panic" OR "Oops" OR "general protection fault") AND ("scsi" OR "sd_read_block")
🔗 References
- https://git.kernel.org/stable/c/413df704f149dec585df07466d2401bbd1f490a0
- https://git.kernel.org/stable/c/568c7c4c77eee6df7677bb861b7cee7398a3255d
- https://git.kernel.org/stable/c/60312ae7392f9c75c6591a52fc359cf7f810d48f
- https://git.kernel.org/stable/c/a776050373893e4c847a49abeae2ccb581153df0
- https://git.kernel.org/stable/c/f81eaf08385ddd474a2f41595a7757502870c0eb
- https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html