CVE-2026-80576 Overview
CVE-2026-80576 is a Linux kernel vulnerability in the AMD GPU driver (drm/amdgpu) that allows local users to corrupt command submission state on GFX rings. The amdgpu_cs_p2_ib() function passes user-supplied ib_bytes directly into ib->length_dw without bounds validation. The ring_emit_ib() routine then encodes that length into hardware packet fields. Oversized values overflow the packet length field and overwrite adjacent control bits, destabilizing GPU command submission.
Critical Impact
A local user with GPU access can submit crafted indirect buffers to corrupt ring packet control bits, causing GPU state corruption and potential privilege escalation on affected Linux systems.
Affected Products
- Linux kernel drm/amdgpu driver on GFX rings
- Linux kernel drm/amdgpu driver on compute, SDMA, and VPE rings
- Linux kernel branches prior to the fix commit 7f48fa2cf62e
Discovery Timeline
- 2026-08-26 - CVE-2026-80576 published to NVD
- 2026-08-27 - Last updated in NVD database
Technical Details for CVE-2026-80576
Vulnerability Analysis
The vulnerability resides in the AMD GPU command submission path. When user space submits an indirect buffer (IB) via the amdgpu_cs ioctl interface, amdgpu_cs_p2_ib() copies the caller-supplied ib_bytes value directly into the internal ib->length_dw field. No upper bound is enforced before the IB is allocated or dispatched.
Downstream, ring_emit_ib() packs length_dw into a hardware packet header field with a documented 20-bit width for GFX, compute, SDMA, and VPE rings. A larger value overflows this bit-field and bleeds into adjacent control bits within the same packet word. Corrupted control bits alter how the GPU interprets the packet, producing undefined ring behavior and unstable command submission.
The fix introduces a per-ring IB packet size helper that enforces the 20-bit dword limit for GFX, compute, SDMA, and VPE ring types, and applies the MM fallback limit elsewhere. Submissions exceeding the limit are rejected before IB allocation.
Root Cause
The root cause is missing input validation between the command submission ioctl and the ring emit stage. The driver trusts user-supplied length values without cross-checking them against the hardware packet encoding constraints of the target ring.
Attack Vector
An attacker requires local access and permission to open /dev/dri/renderD* or /dev/dri/card*. Standard graphics group membership or an active graphical session typically satisfies this requirement. The attacker crafts an amdgpu_cs ioctl containing an oversized ib_bytes value and submits it to a vulnerable ring. See the upstream fix commit for the affected code paths.
Detection Methods for CVE-2026-80576
Indicators of Compromise
- Unexpected GPU hangs, ring resets, or amdgpu timeout messages in dmesg correlated with untrusted user processes
- Repeated amdgpu_cs ioctl failures or malformed IB submissions from non-graphics workloads
- Kernel log entries referencing ring packet corruption or GFX ring recovery events
Detection Strategies
- Audit processes invoking ioctl on /dev/dri/* devices and correlate with GPU error events
- Monitor kernel ring buffer for amdgpu fault messages, hung ring notifications, and GPU reset counters
- Track running kernel versions across the fleet and flag hosts still on unpatched drm/amdgpu branches
Monitoring Recommendations
- Forward dmesg and journald kernel logs to a centralized platform for correlation of GPU faults with process telemetry
- Alert on GPU driver resets originating from non-privileged user contexts, especially on multi-tenant Linux hosts
- Baseline normal amdgpu_cs submission patterns per workload and flag statistical outliers in IB size
How to Mitigate CVE-2026-80576
Immediate Actions Required
- Update to a Linux kernel release that includes the upstream fix commits 07fe270e, 1474f397, 6e164ba1, or fd37f9dd
- Restrict access to /dev/dri/render* and /dev/dri/card* to trusted users and service accounts only
- Inventory hosts running AMD GPUs and prioritize patching multi-user and container hosts exposing GPU devices
Patch Information
The fix is documented in the Linux Kernel Commit 07fe270e with backports available in commit 1474f397, commit 6e164ba1, and commit fd37f9dd. The patch adds a per-ring IB packet size helper and rejects submissions exceeding the 20-bit dword limit before IB allocation.
Workarounds
- Deny GPU device access to untrusted local users by removing them from the video and render groups
- Disallow container access to /dev/dri/* where GPU acceleration is not required
- Apply Linux Security Module (LSM) policies (SELinux, AppArmor) to restrict which binaries may issue amdgpu_cs ioctls
# Restrict GPU device access to a specific trusted group
sudo chgrp trusted-gpu /dev/dri/renderD128
sudo chmod 0660 /dev/dri/renderD128
# Verify kernel version includes the fix
uname -r
zgrep -i 'amdgpu.*ib.*limit' /proc/config.gz 2>/dev/null
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

