CVE-2024-41087
📋 TL;DR
This CVE describes a double-free vulnerability in the Linux kernel's libata-core subsystem that occurs during error handling in ata_host_alloc(). When certain allocation failures happen, the code path triggers kfree() twice on the same memory address, causing kernel memory corruption. This affects Linux systems using the libata subsystem for ATA/SATA device 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 →⚠️ Risk & Real-World Impact
Worst Case
Kernel panic leading to system crash, potential denial of service, or in rare cases could be leveraged for privilege escalation if combined with other vulnerabilities.
Likely Case
System crash or kernel panic when the specific error condition is triggered during ATA device initialization, resulting in denial of service.
If Mitigated
System remains stable as the double-free condition is avoided through proper error handling.
🎯 Exploit Status
Exploitation requires local access and ability to trigger the specific error condition in ata_host_alloc(). No public exploit code is known.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Kernel versions containing commit 010de9acbea58fbcbda08e3793d6262086a493fe
Vendor Advisory: https://git.kernel.org/stable/c/010de9acbea58fbcbda08e3793d6262086a493fe
Restart Required: Yes
Instructions:
1. Update Linux kernel to version containing the fix commit. 2. For distributions: Use package manager to update kernel package. 3. Reboot system to load new kernel.
🔧 Temporary Workarounds
Disable vulnerable subsystem
linuxPrevent loading of libata module to avoid triggering the vulnerability
echo 'blacklist libata' >> /etc/modprobe.d/blacklist.conf
update-initramfs -u
reboot
🧯 If You Can't Patch
- Restrict local user access to systems to reduce attack surface
- Monitor system logs for kernel panic or Oops messages related to libata or ata_host_alloc
🔍 How to Verify
Check if Vulnerable:
Check kernel version and whether it contains the vulnerable code. Vulnerable if kernel is between bug introduction and fix commit 010de9acbea58fbcbda08e3793d6262086a493fe.
Check Version:
uname -r
Verify Fix Applied:
Verify kernel version includes commit 010de9acbea58fbcbda08e3793d6262086a493fe or later stable kernel release
📡 Detection & Monitoring
Log Indicators:
- Kernel panic messages
- Oops: invalid opcode errors
- BUG: double free or corruption in kernel logs
- ata_host_alloc failure messages
Network Indicators:
- None - this is a local kernel vulnerability
SIEM Query:
source="kernel" AND ("double free" OR "invalid opcode" OR "ata_host_alloc" OR "libata")
🔗 References
- https://git.kernel.org/stable/c/010de9acbea58fbcbda08e3793d6262086a493fe
- https://git.kernel.org/stable/c/062e256516d7db5e7dcdef117f52025cd5c456e3
- https://git.kernel.org/stable/c/290073b2b557e4dc21ee74a1e403d9ae79e393a2
- https://git.kernel.org/stable/c/56f1c7e290cd6c69c948fcd2e2a49e6a637ec38f
- https://git.kernel.org/stable/c/5dde5f8b790274723640d29a07c5a97d57d62047
- https://git.kernel.org/stable/c/702c1edbafb2e6f9d20f6d391273b5be09d366a5
- https://git.kernel.org/stable/c/8106da4d88bbaed809e023cc8014b766223d6e76
- https://git.kernel.org/stable/c/ab9e0c529eb7cafebdd31fe1644524e80a48b05d
- https://git.kernel.org/stable/c/010de9acbea58fbcbda08e3793d6262086a493fe
- https://git.kernel.org/stable/c/062e256516d7db5e7dcdef117f52025cd5c456e3
- https://git.kernel.org/stable/c/290073b2b557e4dc21ee74a1e403d9ae79e393a2
- https://git.kernel.org/stable/c/56f1c7e290cd6c69c948fcd2e2a49e6a637ec38f
- https://git.kernel.org/stable/c/5dde5f8b790274723640d29a07c5a97d57d62047
- https://git.kernel.org/stable/c/702c1edbafb2e6f9d20f6d391273b5be09d366a5
- https://git.kernel.org/stable/c/8106da4d88bbaed809e023cc8014b766223d6e76
- https://git.kernel.org/stable/c/ab9e0c529eb7cafebdd31fe1644524e80a48b05d
- https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html