CVE-2024-49989
📋 TL;DR
This CVE describes a double-free memory corruption vulnerability in the AMD GPU display driver within the Linux kernel. When unloading the amdgpu kernel module, the system attempts to free the same memory twice, causing a kernel panic and system crash. This affects Linux systems with AMD graphics hardware using the amdgpu driver.
💻 Affected Systems
- Linux kernel with AMD GPU support
📦 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 causing data loss or system instability.
Likely Case
System crash when unloading the amdgpu module, requiring reboot and causing temporary service disruption.
If Mitigated
No impact if the vulnerability is patched or the amdgpu module is not unloaded.
🎯 Exploit Status
Exploitation requires local access and ability to unload kernel modules (typically root privileges). The vulnerability is triggered predictably during module unloading.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Patches available in Linux kernel stable branches (commits: 20b5a8f9f4670a8503aa9fa95ca632e77c6bf55d, 3c0ff4de45ce2c5f7997a1ffa6eefee4b79e6b58, 43c296870740a3a264cdca9f18db12e12e9cfbdb, 7af9e6fa63dbd43a61d4ecc8f59426596a75e507, cf6f3ebd6312d465fee096d1f58089b177c7c67f)
Vendor Advisory: https://git.kernel.org/stable/c/20b5a8f9f4670a8503aa9fa95ca632e77c6bf55d
Restart Required: Yes
Instructions:
1. Update Linux kernel to a version containing the fix. 2. For distributions: Use package manager to update kernel package. 3. For custom kernels: Apply the relevant patch from kernel.org. 4. Reboot system to load patched kernel.
🔧 Temporary Workarounds
Prevent amdgpu module unloading
linuxPrevent unloading of the amdgpu kernel module to avoid triggering the vulnerability
echo 'install amdgpu /bin/false' >> /etc/modprobe.d/blacklist-amdgpu.conf
update-initramfs -u
🧯 If You Can't Patch
- Restrict module management permissions to prevent unauthorized users from unloading modules
- Monitor for amdgpu module unloading attempts and investigate any such activity
🔍 How to Verify
Check if Vulnerable:
Check if system has AMD GPU and amdgpu module loaded: lsmod | grep amdgpu
Check Version:
uname -r
Verify Fix Applied:
Check kernel version against patched versions or verify the specific commit is present in kernel source
📡 Detection & Monitoring
Log Indicators:
- Kernel panic messages mentioning __slab_free, double free, or amdgpu module unloading
- System crash/reboot logs following amdgpu module operations
Network Indicators:
- None - this is a local vulnerability
SIEM Query:
source="kernel" AND ("double free" OR "__slab_free" OR "amdgpu" AND "unload")
🔗 References
- https://git.kernel.org/stable/c/20b5a8f9f4670a8503aa9fa95ca632e77c6bf55d
- https://git.kernel.org/stable/c/3c0ff4de45ce2c5f7997a1ffa6eefee4b79e6b58
- https://git.kernel.org/stable/c/43c296870740a3a264cdca9f18db12e12e9cfbdb
- https://git.kernel.org/stable/c/7af9e6fa63dbd43a61d4ecc8f59426596a75e507
- https://git.kernel.org/stable/c/cf6f3ebd6312d465fee096d1f58089b177c7c67f
- https://git.kernel.org/stable/c/df948b5ba6858d5da34f622d408e5517057cec07
- https://lists.debian.org/debian-lts-announce/2025/03/msg00028.html