CVE-2024-46722 Overview
CVE-2024-46722 is a memory safety vulnerability in the Linux kernel's AMDGPU Direct Rendering Manager (DRM) driver. The vulnerability exists in the mc_data array handling code, where an out-of-bounds read condition can occur when accessing mc_data[i-1]. This flaw was identified through static analysis warnings and has been resolved through proper bounds checking in multiple kernel versions.
Critical Impact
Local attackers with low-privilege access can exploit this out-of-bounds read vulnerability to disclose sensitive kernel memory contents or cause a denial of service condition, potentially leading to system instability on systems with AMD graphics hardware.
Affected Products
- Linux Kernel (multiple versions with AMDGPU driver support)
- Debian Linux (addressed in LTS security updates)
- Systems with AMD GPU hardware using the amdgpu DRM driver
Discovery Timeline
- September 18, 2024 - CVE-2024-46722 published to NVD
- November 3, 2025 - Last updated in NVD database
Technical Details for CVE-2024-46722
Vulnerability Analysis
This vulnerability is classified as CWE-125 (Out-of-Bounds Read) and affects the AMDGPU DRM driver within the Linux kernel. The flaw exists in the memory controller data handling logic where array index calculations can result in accessing memory locations outside the intended buffer boundaries.
The vulnerability requires local access to exploit, meaning an attacker must have some level of access to the target system. With low privilege requirements, an authenticated local user could potentially trigger this condition through interactions with the graphics subsystem. The impact primarily affects confidentiality and availability—sensitive kernel memory could be disclosed, and system stability could be compromised through denial of service conditions.
Root Cause
The root cause of this vulnerability stems from improper array bounds validation in the AMDGPU driver's memory controller data handling code. When iterating through the mc_data array, the code performs an access to mc_data[i-1] without adequately verifying that i-1 results in a valid index. When i equals 0 at the start of iteration, this calculation produces an index of -1, which causes the read operation to access memory before the start of the allocated buffer.
Attack Vector
The attack vector is local, requiring an authenticated user with low privileges to interact with the vulnerable AMDGPU driver code path. An attacker could potentially trigger this vulnerability by:
- Sending specially crafted input through the graphics driver interface
- Exploiting the memory controller initialization or configuration routines
- Forcing the driver into a state where the vulnerable array access is executed with a boundary-violating index
The vulnerability mechanism involves improper array index calculation in the mc_data handling routine. When the loop counter i is at its initial value, accessing mc_data[i-1] results in an underflow condition that reads memory from an unintended location before the array boundary. The kernel patch addresses this by adding proper bounds validation before the array access operation. For complete technical details, see the kernel git commits referenced in the advisory.
Detection Methods for CVE-2024-46722
Indicators of Compromise
- Kernel log messages indicating out-of-bounds access warnings in AMDGPU driver components
- Unexpected system crashes or kernel panics related to the DRM subsystem on AMD GPU systems
- Memory corruption symptoms when loading or using the amdgpu kernel module
Detection Strategies
- Monitor kernel logs (dmesg) for AMDGPU driver warnings or errors related to memory access violations
- Implement kernel address sanitizer (KASAN) in development and testing environments to detect out-of-bounds accesses
- Use SentinelOne Singularity Platform's kernel-level monitoring to detect anomalous driver behavior patterns
- Review system crash dumps for evidence of exploitation attempts targeting graphics subsystem components
Monitoring Recommendations
- Enable kernel debugging features to capture detailed information about DRM driver operations
- Configure centralized logging for kernel messages across systems with AMD GPU hardware
- Establish baseline metrics for AMDGPU driver stability and monitor for deviations
- Deploy endpoint detection solutions capable of monitoring kernel module behavior and memory access patterns
How to Mitigate CVE-2024-46722
Immediate Actions Required
- Identify all systems running affected Linux kernel versions with AMD GPU hardware
- Prioritize patching for systems where local user access is permitted
- Review kernel version and compare against fixed versions to determine vulnerability status
- Apply available kernel updates from distribution repositories
Patch Information
The Linux kernel development team has released patches across multiple stable kernel branches to address this vulnerability. The fixes add proper bounds checking to prevent the out-of-bounds read condition in the mc_data array access. Patches are available through the official kernel git repository:
- Kernel Git Commit 2097edede72e
- Kernel Git Commit 310b9d8363b8
- Kernel Git Commit 345bd3ad387f
- Kernel Git Commit 51dfc0a4d609
- Kernel Git Commit 578ae965e8b9
- Kernel Git Commit 5fa4df25ecfc
- Kernel Git Commit b862a0bc5356
- Kernel Git Commit d0a43bf367ed
Debian users should refer to the Debian LTS Security Announcements for distribution-specific updates.
Workarounds
- Limit local user access to systems with AMD GPU hardware where immediate patching is not feasible
- Consider disabling the amdgpu kernel module on systems where AMD GPU functionality is not required
- Implement strict access controls to limit which users can interact with the graphics subsystem
- Monitor affected systems closely for signs of exploitation until patches can be applied
# Check current kernel version and amdgpu module status
uname -r
lsmod | grep amdgpu
# Temporarily blacklist amdgpu module if not needed (workaround only)
echo "blacklist amdgpu" | sudo tee /etc/modprobe.d/blacklist-amdgpu.conf
sudo update-initramfs -u
# Update kernel packages (Debian/Ubuntu example)
sudo apt update && sudo apt upgrade linux-image-$(uname -r)
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


