CVE-2024-57980
📋 TL;DR
This CVE describes a double-free vulnerability in the Linux kernel's UVC video driver. If exploited, it could lead to memory corruption and potential kernel panic or privilege escalation. Systems using USB video devices with the affected kernel driver are vulnerable.
💻 Affected Systems
- Linux kernel with UVC video 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 →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, or privilege escalation allowing attackers to gain root access and execute arbitrary code.
Likely Case
System instability or crash when USB video devices are connected/disconnected, potentially causing denial of service.
If Mitigated
Minor system instability that may require reboot if triggered accidentally.
🎯 Exploit Status
Exploitation requires triggering the error path in uvc_status_init() function, which may require specific USB device conditions or malformed device descriptors.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Kernel versions containing the fix commits (3ba8884a56a3eb97c22f0ce0e4dd410d4ca4c277 and others listed)
Vendor Advisory: https://git.kernel.org/stable/c/3ba8884a56a3eb97c22f0ce0e4dd410d4ca4c277
Restart Required: No
Instructions:
1. Update to a kernel version containing the fix commits. 2. For distributions: Apply vendor kernel updates. 3. For custom kernels: Apply the patch from git.kernel.org. 4. Rebuild and install the kernel if compiling from source.
🔧 Temporary Workarounds
Disable UVC driver
allPrevent loading of the vulnerable UVC video driver
echo 'blacklist uvcvideo' >> /etc/modprobe.d/blacklist.conf
rmmod uvcvideo
Restrict USB device access
allPrevent unauthorized USB video devices from being connected
usbguard generate-policy > /etc/usbguard/rules.conf
systemctl enable --now usbguard
🧯 If You Can't Patch
- Implement strict USB device control policies to prevent unauthorized USB video devices
- Monitor system logs for kernel panic or OOPS messages related to UVC driver
🔍 How to Verify
Check if Vulnerable:
Check kernel version and verify if it contains the vulnerable code by examining the UVC driver source or checking if patches are applied
Check Version:
uname -r
Verify Fix Applied:
Verify kernel version includes the fix commits or check that 'git log --oneline drivers/media/usb/uvc/uvc_status.c' includes the fix commits
📡 Detection & Monitoring
Log Indicators:
- Kernel OOPS messages
- Kernel panic logs
- dmesg output showing UVC driver errors or double-free warnings
Network Indicators:
- None - this is a local driver vulnerability
SIEM Query:
source="kernel" AND ("uvcvideo" OR "double free" OR "kernel panic")
🔗 References
- https://git.kernel.org/stable/c/3ba8884a56a3eb97c22f0ce0e4dd410d4ca4c277
- https://git.kernel.org/stable/c/6c36dcd662ec5276782838660f8533a7cb26be49
- https://git.kernel.org/stable/c/87522ef165e5b6de8ef98cc318f3335166a1512c
- https://git.kernel.org/stable/c/9232719ac9ce4d5c213cebda23d72aec3e1c4c0d
- https://git.kernel.org/stable/c/c6ef3a7fa97ec823a1e1af9085cf13db9f7b3bac
- https://git.kernel.org/stable/c/d1f8e69eec91d5a75ef079778a5d0151db2a7f22
- https://git.kernel.org/stable/c/d6e5ba2516c5bef87c1fcb8189b6f3cad7c64b2d
- https://git.kernel.org/stable/c/d8e63dd7b6683969d3d47c7b8e9635f96d554ad4
- https://lists.debian.org/debian-lts-announce/2025/03/msg00028.html
- https://lists.debian.org/debian-lts-announce/2025/05/msg00030.html