CVE-2026-68276 Overview
CVE-2026-68276 is a kernel-space buffer overflow in the Linux kernel's drm/amdgpu/gfx driver. The cleaner shader sysfs path allocates a 16-dword (64-byte) indirect buffer (IB) but incorrectly fills align_mask + 1 dwords. On GFX rings align_mask is 0xff, causing the loop to write 256 dwords into a 64-byte buffer. The out-of-bounds write triggers a kernel page fault. The issue affects local users interacting with the AMD GPU driver sysfs interface on systems using the amdgpu kernel driver.
Critical Impact
A stack/heap-adjacent kernel buffer overflow in the amdgpu cleaner shader path causes kernel page faults and system instability on AMD GPU hosts.
Affected Products
- Linux kernel builds shipping the drm/amdgpu/gfx cleaner shader sysfs path
- Systems using AMD GPUs with the amdgpu driver on GFX rings where align_mask is 0xff
- Distributions tracking the mainline stable branches referenced by commits 201633f, 3e864bf, 9cd9a98, and e28420e
Discovery Timeline
- 2026-08-10 - CVE-2026-68276 published to NVD
- 2026-08-10 - Last updated in NVD database
Technical Details for CVE-2026-68276
Vulnerability Analysis
The vulnerability resides in the AMD GPU (amdgpu) DRM driver's cleaner shader sysfs handler. The kernel allocates an indirect buffer sized for 16 dwords (64 bytes) intended to hold a minimal NOP shell that schedules the cleaner shader job on the ring. The fill loop, however, uses align_mask + 1 as its iteration count. On GFX rings the alignment mask equals 0xff, so the loop writes 256 dwords (1024 bytes) into the 64-byte allocation. This 960-byte overrun corrupts adjacent kernel memory and produces a kernel page fault when the write crosses an unmapped or protected page boundary. The cleaner shader itself is emitted separately on the ring through emit_cleaner_shader(), so the IB does not require the extra data.
Root Cause
The defect is an input validation and boundary condition error: the loop bound was derived from the ring's alignment mask rather than the actual ib_size_dw allocation size. The fix, cherry-picked from commit bf21af331ebf72d0935fd70c73192414a422c03a, replaces the incorrect count with the ib_size_dw variable so the fill count matches the allocation.
Attack Vector
Triggering the overflow requires interaction with the cleaner shader sysfs entry exposed by the amdgpu driver. A local user or process with access to the sysfs path can invoke the vulnerable code path and induce the out-of-bounds kernel write. The immediate observable effect is a kernel page fault leading to denial of service. Memory corruption in adjacent kernel structures is possible depending on allocator layout.
Verified code for this vulnerability is not publicly published beyond the upstream patch. See the Kernel Git Commit 201633f and Kernel Git Commit bf21af3 (backport source) for the authoritative fix.
Detection Methods for CVE-2026-68276
Indicators of Compromise
- Kernel oops or page fault messages in dmesg referencing amdgpu, amdgpu_ib_*, or the cleaner shader code path
- Unexpected GPU driver resets or system crashes correlated with writes to the cleaner shader sysfs entry
- Sudden termination of workloads using AMD GPUs on unpatched kernels
Detection Strategies
- Inventory Linux hosts running the amdgpu driver and cross-reference kernel versions against the fixed stable branches in the referenced git commits
- Monitor kernel logs for BUG:, Oops:, or general protection fault entries emitted from amdgpu modules
- Alert on process activity that opens or writes to amdgpu cleaner shader sysfs paths from non-administrative users
Monitoring Recommendations
- Forward kernel ring buffer and journald logs to a central analytics pipeline for correlation across GPU-equipped hosts
- Track kernel package versions across the fleet and flag hosts that lag behind the patched stable releases
- Baseline expected sysfs access patterns for amdgpu and alert on deviations
How to Mitigate CVE-2026-68276
Immediate Actions Required
- Update the Linux kernel to a stable release that includes the fix commits referenced by the upstream advisory
- Restrict local access on multi-tenant hosts that run AMD GPUs until the patched kernel is deployed
- Review audit logs for prior writes to the amdgpu cleaner shader sysfs path
Patch Information
The fix is upstreamed as a cherry-pick of commit bf21af331ebf72d0935fd70c73192414a422c03a, and is present in the stable branches identified by commits 201633f, 3e864bf, 9cd9a98, and e28420e. The patch changes the IB fill loop to use ib_size_dw instead of align_mask + 1, so the write count matches the 16-dword allocation.
Workarounds
- Restrict access to the amdgpu cleaner shader sysfs entry using kernel command-line options, udev rules, or file system permissions until the patch is applied
- Where the cleaner shader sysfs interface is not required, unload or blacklist non-essential amdgpu debug interfaces
- Isolate untrusted local users from hosts with AMD GPUs by enforcing standard multi-tenant boundaries
# Verify running kernel and amdgpu module against the patched commits
uname -r
modinfo amdgpu | grep -E '^(version|srcversion|filename):'
# Restrict cleaner shader sysfs entry (path may vary by kernel version)
find /sys/class/drm -name 'run_cleaner_shader' -exec chmod 600 {} \;
# Watch kernel log for amdgpu page faults
dmesg -T --follow | grep -Ei 'amdgpu|page fault|Oops'
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

