CVE-2024-35932
📋 TL;DR
This is a use-after-free vulnerability in the Linux kernel's VC4 DRM driver that can cause kernel memory corruption and potential system crashes. It affects systems using the VC4 graphics driver on Raspberry Pi devices and other ARM-based platforms. The vulnerability occurs during non-blocking display commits when checking frame buffer references.
💻 Affected Systems
- Linux kernel with VC4 DRM driver
📦 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, potential privilege escalation if combined with other vulnerabilities, or system instability requiring reboot.
Likely Case
System crashes or kernel warnings when using graphics-intensive applications, particularly with non-blocking display commits on affected hardware.
If Mitigated
Minor performance impact or application crashes without system-wide effects if properly contained.
🎯 Exploit Status
Exploitation requires local access and ability to trigger the vulnerable code path through graphics operations.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Linux kernel with commits 48bfb4b03c5ff6e1fa1dc73fb915e150b0968c40, 5343f724c912c77541029123f47ecd3d2ea63bdd, 5ee0d47dcf33efd8950b347dcf4d20bab12a3fa9, d6b2fe2db1d0927b2d7df5c763eba55d0e1def3c
Vendor Advisory: https://git.kernel.org/stable/c/48bfb4b03c5ff6e1fa1dc73fb915e150b0968c40
Restart Required: Yes
Instructions:
1. Update Linux kernel to version containing the fix commits. 2. For Raspberry Pi OS: Run 'sudo apt update && sudo apt upgrade'. 3. For other distributions: Use your package manager to update kernel packages. 4. Reboot system to load new kernel.
🔧 Temporary Workarounds
Disable VC4 DRM driver
linuxPrevent loading of vulnerable VC4 driver module
echo 'blacklist vc4' | sudo tee /etc/modprobe.d/blacklist-vc4.conf
sudo update-initramfs -u
sudo reboot
Use software rendering
linuxForce software rendering instead of hardware acceleration
export LIBGL_ALWAYS_SOFTWARE=1
🧯 If You Can't Patch
- Restrict local user access to systems with vulnerable kernels
- Monitor system logs for kernel warnings related to refcount underflow or VC4 driver
🔍 How to Verify
Check if Vulnerable:
Check kernel version and if VC4 driver is loaded: 'uname -r' and 'lsmod | grep vc4'
Check Version:
uname -r
Verify Fix Applied:
Verify kernel version is updated and check dmesg for absence of refcount underflow warnings related to VC4
📡 Detection & Monitoring
Log Indicators:
- Kernel warnings with 'refcount_t: underflow; use-after-free'
- VC4 driver related errors in dmesg
- System crashes or instability during graphics operations
Network Indicators:
- None - this is a local vulnerability
SIEM Query:
source="kernel" AND ("refcount_t: underflow" OR "vc4" AND "use-after-free")
🔗 References
- https://git.kernel.org/stable/c/48bfb4b03c5ff6e1fa1dc73fb915e150b0968c40
- https://git.kernel.org/stable/c/5343f724c912c77541029123f47ecd3d2ea63bdd
- https://git.kernel.org/stable/c/5ee0d47dcf33efd8950b347dcf4d20bab12a3fa9
- https://git.kernel.org/stable/c/d6b2fe2db1d0927b2d7df5c763eba55d0e1def3c
- https://git.kernel.org/stable/c/48bfb4b03c5ff6e1fa1dc73fb915e150b0968c40
- https://git.kernel.org/stable/c/5343f724c912c77541029123f47ecd3d2ea63bdd
- https://git.kernel.org/stable/c/5ee0d47dcf33efd8950b347dcf4d20bab12a3fa9
- https://git.kernel.org/stable/c/d6b2fe2db1d0927b2d7df5c763eba55d0e1def3c