CVE-2026-46204 Overview
CVE-2026-46204 is a Linux kernel vulnerability in the AMD GPU (amdgpu) driver, specifically in the Video Core Next 4 (VCN4) Indirect Buffer (IB) parsing logic. The driver reads IB data without performing bounds checks, allowing out-of-bounds reads from kernel memory during command submission. Kernel maintainers resolved the issue by rewriting the IB parsing path to use amdgpu_ib_get_value(), which enforces bounds validation. The fix was committed across multiple stable branches under commits 1dc00577, 2444eb0e, 5c3e8eba, a6d5563b, and d0802a88.
Critical Impact
Local users with access to the AMD GPU device interfaces can trigger out-of-bounds reads in kernel space, potentially leading to information disclosure or kernel instability through crafted IB submissions.
Affected Products
- Linux kernel drm/amdgpu driver with VCN4 support
- Systems using AMD GPUs that route video codec workloads through VCN4 hardware blocks
- Stable kernel branches prior to the merge of the referenced fix commits
Discovery Timeline
- 2026-05-28 - CVE-2026-46204 published to NVD
- 2026-05-28 - Last updated in NVD database
Technical Details for CVE-2026-46204
Vulnerability Analysis
The vulnerability resides in the VCN4 IB parsing routines of the amdgpu Direct Rendering Manager (DRM) driver. IBs are command buffers submitted by user space to instruct the GPU on encoding and decoding video frames. The parser walks these buffers to validate commands before they reach the hardware ring.
The original parsing code accessed IB entries directly without verifying that offsets remained within the buffer's allocated size. A user-controlled IB containing crafted offsets or lengths can therefore cause the parser to read memory beyond the buffer boundary. This is classified as an Out-of-Bounds Read [CWE-125] in kernel context.
The maintainer fix rewrites these accesses to use amdgpu_ib_get_value(), a helper that validates the requested offset against the IB size before returning a value. This centralizes bounds checking and prevents the parser from dereferencing memory outside the submitted buffer.
Root Cause
The root cause is missing input validation on offsets used during IB traversal in the VCN4 parser. The parsing functions trusted offset and length fields from the submitted command stream without confirming that the resulting read fell inside the allocated IB region.
Attack Vector
Exploitation requires local access to the AMD GPU device nodes, typically /dev/dri/renderD* or /dev/dri/card*. An attacker with permission to submit GPU work can craft a malformed VCN4 IB and submit it through the standard amdgpu ioctl interface. The parser then performs the unchecked read while validating the buffer. The vulnerability does not require elevated privileges beyond access to the render node, which is often granted to unprivileged users via group membership.
No verified public proof-of-concept code is available. Refer to the upstream commits listed in the references for the precise code paths affected.
Detection Methods for CVE-2026-46204
Indicators of Compromise
- Unexpected amdgpu kernel log entries referencing IB parsing failures, ring resets, or GPU hangs on VCN4-equipped hardware
- Kernel dmesg warnings or oops traces originating from VCN4 parser functions on unpatched kernels
- Unprivileged processes repeatedly submitting malformed video decode or encode workloads to /dev/dri/renderD*
Detection Strategies
- Inventory running kernel versions across Linux endpoints and servers, and flag hosts with AMD GPUs running kernels predating the referenced stable commits
- Monitor kernel ring buffer (dmesg, journalctl -k) for repeated amdgpu faults associated with VCN4 IB parsing
- Audit which local accounts and containers have access to DRM render nodes, since this access is the prerequisite for exploitation
Monitoring Recommendations
- Forward kernel logs to a centralized logging or SIEM platform and alert on amdgpu error patterns correlated with non-administrative users
- Track GPU device file access (/dev/dri/*) via auditd rules to surface unusual processes interacting with the render node
- Correlate GPU subsystem crashes with process telemetry to identify the originating workload
How to Mitigate CVE-2026-46204
Immediate Actions Required
- Update affected systems to a Linux kernel release that includes commits 1dc00577, 2444eb0e, 5c3e8eba, a6d5563b, or d0802a88 as applicable to your stable branch
- Restrict access to /dev/dri/renderD* and /dev/dri/card* to trusted users and required service accounts only
- Review container and virtualization configurations that expose GPU devices to untrusted workloads
Patch Information
The upstream fix replaces direct IB buffer accesses in the VCN4 parser with calls to amdgpu_ib_get_value(), which performs bounds checks before returning values. The patch is available across multiple stable branches. See the Linux Kernel Commit 1dc00577, Linux Kernel Commit 2444eb0e, Linux Kernel Commit 5c3e8eba, Linux Kernel Commit a6d5563b, and Linux Kernel Commit d0802a88. Apply your distribution's kernel update once it incorporates these commits.
Workarounds
- Tighten permissions on DRM render nodes so only trusted users can submit GPU work, reducing the local attack surface
- Where VCN4 video acceleration is not required, disable or unbind the VCN4 component to remove the vulnerable code path from runtime use
- Avoid exposing GPU devices into untrusted containers or virtual machines until the patched kernel is deployed
# Verify running kernel and check for AMD GPU VCN4 usage
uname -r
lsmod | grep amdgpu
dmesg | grep -iE 'amdgpu|vcn'
# Restrict access to DRM render nodes to the 'render' group
ls -l /dev/dri/
sudo chmod 0660 /dev/dri/renderD*
sudo chown root:render /dev/dri/renderD*
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

