CVE-2024-35795
📋 TL;DR
A deadlock vulnerability in the Linux kernel's AMD GPU driver debugfs interface allows local attackers to cause a denial of service (system crash/hard reset) by reading specific debugfs files while holding certain locks. This affects Linux systems with AMD GPUs and the amdgpu driver loaded.
💻 Affected Systems
- Linux kernel with AMD GPU driver (amdgpu)
📦 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
System hard reset/crash leading to data loss, service disruption, and potential filesystem corruption.
Likely Case
System crash/hard reset when debugfs files are accessed under specific conditions, causing temporary denial of service.
If Mitigated
No impact if debugfs is not mounted or access is restricted to privileged users only.
🎯 Exploit Status
Exploitation requires local access to debugfs interface. The deadlock scenario was accidentally triggered by a disk backup operation.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Fixed in Linux kernel commits: 197f6d6987c55860f6eea1c93e4f800c59078874, 4687e3c6ee877ee25e57b984eca00be53b9a8db5, 8678b1060ae2b75feb60b87e5b75e17374e3c1c5, 8b03556da6e576c62664b6cd01809e4a09d53b5b
Vendor Advisory: https://git.kernel.org/stable/c/197f6d6987c55860f6eea1c93e4f800c59078874
Restart Required: Yes
Instructions:
1. Update Linux kernel to version containing the fix commits. 2. Check with your distribution for specific patched kernel versions. 3. Reboot system after kernel update.
🔧 Temporary Workarounds
Disable debugfs access
linuxUnmount debugfs or restrict access to prevent triggering the vulnerability
umount /sys/kernel/debug
mount -t debugfs none /sys/kernel/debug -o ro,noexec,nosuid
Restrict debugfs permissions
linuxChange debugfs permissions to root-only access
chmod 700 /sys/kernel/debug
chown root:root /sys/kernel/debug
🧯 If You Can't Patch
- Restrict debugfs access to root users only using filesystem permissions
- Unmount debugfs filesystem if not required for system operation
🔍 How to Verify
Check if Vulnerable:
Check if debugfs is mounted and accessible: 'mount | grep debugfs' and 'ls -la /sys/kernel/debug/dri/'
Check Version:
uname -r
Verify Fix Applied:
Check kernel version against patched versions from your distribution, or verify the fix commits are present in kernel source
📡 Detection & Monitoring
Log Indicators:
- Kernel logs showing 'possible circular locking dependency detected'
- System crash/hard reset events
- Messages about amdgpu_debugfs_mqd_read deadlock
Network Indicators:
- None - local vulnerability only
SIEM Query:
source="kernel" AND ("circular locking" OR "amdgpu_debugfs_mqd_read" OR "deadlock")
🔗 References
- https://git.kernel.org/stable/c/197f6d6987c55860f6eea1c93e4f800c59078874
- https://git.kernel.org/stable/c/4687e3c6ee877ee25e57b984eca00be53b9a8db5
- https://git.kernel.org/stable/c/8678b1060ae2b75feb60b87e5b75e17374e3c1c5
- https://git.kernel.org/stable/c/8b03556da6e576c62664b6cd01809e4a09d53b5b
- https://git.kernel.org/stable/c/197f6d6987c55860f6eea1c93e4f800c59078874
- https://git.kernel.org/stable/c/4687e3c6ee877ee25e57b984eca00be53b9a8db5
- https://git.kernel.org/stable/c/8678b1060ae2b75feb60b87e5b75e17374e3c1c5
- https://git.kernel.org/stable/c/8b03556da6e576c62664b6cd01809e4a09d53b5b