CP_GFX_SHADOW data chunk, after which the driver would treat that allocation as a full structure. The upstream fix is already in the Linux DRM tree, but the newly published National Vulnerability Database entry was unavailable at publication time because NVD was returning a Cloudflare 502 error. That outage matters here: NVD’s affected-version range, CVSS score, CWE classification, and any public exploit assessment could not be independently checked.The kernel-side record is clearer than the CVE page. AMDGPU maintainer Mario Limonciello’s patch, included in the June 2026
drm-fixes-7.2pull request, adds one specific validation step in
amdgpu_cs_pass1():
AMDGPU_CHUNK_ID_CP_GFX_SHADOWmust contain at least the number of bytes required by
struct drm_amdgpu_cs_chunk_cp_gfx_shadow. Without it, the parser accepted a chunk based on a user-controlled declared length and deferred interpretation of its contents until the second command-submission pass.
That makes this a Linux graphics-stack vulnerability, not a Windows Radeon Software or Windows kernel vulnerability. Normal Windows systems are outside the code path. Standard WSL GPU acceleration is also not the obvious target: Microsoft documents WSL GPU access as going through
/dev/dxg, which routes calls to the Windows GPU stack rather than exposing the host AMD GPU through Linux’s
amdgpuDRM driver. The systems that need attention are Linux desktops, workstations, development hosts, containers, and virtual machines where the in-guest Linux kernel drives an AMD GPU with AMDGPU.
The missing check sits before a later structure read
AMDGPU command submission is handled in stages. In the first pass, the driver copies each user-provided command-submission chunk into kernel memory, multiplies the submitted dword count by four to get its byte size, then validates selected chunk types before creating GPU jobs. Most fixed-layout chunks already have a minimum-size check at that point.
Before this fix,
CP_GFX_SHADOWwas grouped with variable-length synchronization and dependency chunks that did not require a fixed minimum structure size. The problem is that it is not actually variable-length when AMDGPU reaches the second pass. The second-pass handler casts the copied buffer to
struct drm_amdgpu_cs_chunk_cp_gfx_shadowand reads four 64-bit fields:
- A GPU virtual address for the shadow allocation.
- A GPU virtual address for the command-stream allocation.
- A GPU virtual address for GDS memory.
- A flags field controlling shadow initialization.
The public UAPI definition makes that structure 32 bytes long. A caller could previously declare a smaller payload, causing the driver to allocate and copy less than 32 bytes, then later dereference it as though all 32 bytes existed. The new check rejects any undersized chunk during the first pass with
-EINVAL, before the second-pass parser can read beyond the copied kernel allocation.
The patch is small because the defect is narrow. It adds no new privilege check, changes no firmware behavior, and does not alter normal command submissions that provide the complete structure. Its practical purpose is to restore an invariant the surrounding parser already applies to other fixed-format chunk types: the kernel must verify the payload size before interpreting it as a structure.
Why CP_GFX_SHADOW narrows the hardware scope
CP_GFX_SHADOWis not a generic AMDGPU path exercised by every Radeon card or every graphical Linux workload. The interface was introduced with firmware-assisted graphics-context shadowing for GFX11 hardware, a feature intended to support preemption and context-state handling. The original AMD GPU mailing-list patch series described the feature as needed for MCBP on GFX11, and the related UAPI exposes the required shadow-buffer sizes and alignments to user-mode drivers.
That means an AMD GPU alone is not enough to establish exposure. A potentially affected system needs several conditions:
- It must run a Linux kernel containing the vulnerable AMDGPU submission code.
- It must use the AMDGPU driver for a GPU with the relevant GFX shadow capability enabled.
- A local process must be able to open the appropriate DRM device and issue AMDGPU command-submission ioctls.
- That process must submit a deliberately malformed
CP_GFX_SHADOWchunk.
The Linux DRM model is important in the third condition. The kernel’s DRM documentation explains that render nodes exist specifically to let user-space rendering clients access GPU functionality under ordinary filesystem permissions, rather than becoming DRM master. On a typical desktop this is normally controlled through ownership and group permissions on
/dev/dri/renderD*; container runtimes and remote-development environments can also deliberately pass a render node into a less-trusted workload.
The CVE therefore belongs in the local-attack-surface category. It does not describe a network service reachable from the internet, and nothing in the available upstream material indicates a remote attack vector. But “local” should not be read as “irrelevant” on shared Linux workstations, GPU build hosts, hosted development systems, or container platforms that provide GPU access to tenant code. GPU driver ioctls are part of the kernel’s attack surface once a process can reach the render node.
The record shows a patch before it shows a complete advisory
The timing also exposes a familiar Linux-kernel vulnerability-management gap. The fix was part of AMD’s June 19
drm-fixes-7.2pull request and reached Linus Torvalds’ tree during the June 2026 merge window. SUSE subsequently included the same change in its SLES 15 SP7 kernel update, listing it simply as “drm/amdgpu: validate CP_GFX_SHADOW chunk size in CS pass1” among upstream fixes.
SUSE’s advisory does not list CVE-2026-68272 among the security issues it explicitly enumerates, even though it contains the correcting patch. NVD published the CVE later, on August 11, 2026. In other words, the code fix has already started appearing in vendor kernels while the vulnerability identifier is only now becoming visible to scanners and inventory workflows.
That difference has operational consequences. A vulnerability scanner that relies solely on CVE-labelled package metadata may initially miss a distribution kernel that already has the correction, or flag a system based on an upstream version heuristic despite a vendor backport. Conversely, an administrator who sees no CVE entry in a vendor advisory cannot safely assume an older kernel lacks the bug; distributions often carry a mixed set of upstream fixes without adopting every CVE label immediately.
The correct way to determine exposure is patch-based, not release-name-based. Check the distribution’s kernel changelog or source package for the exact AMDGPU change, and check whether the source’s
amdgpu_cs.cvalidates
AMDGPU_CHUNK_ID_CP_GFX_SHADOWagainst
sizeof(struct drm_amdgpu_cs_chunk_cp_gfx_shadow)in
amdgpu_cs_pass1().
What administrators should do now
For Linux systems using AMD GPUs, install the latest kernel supplied by the distribution rather than attempting to rebuild or patch the AMDGPU module in isolation. AMDGPU is built into the kernel’s DRM stack on most distributions, and a reboot into the new kernel is normally required before the fix is active.
Where immediate patching is not possible, reduce the relevant local attack surface rather than treating the issue as a reason to disable graphical workloads wholesale. Review which users, containers, and services can access
/dev/dri/renderD*; do not pass render nodes into untrusted containers by default; and separate untrusted GPU-compilation, shader, browser, or compute workloads from sensitive host systems when practical.
For Windows-focused administrators, the concrete answer is simpler: do not deploy an AMD Adrenalin update or a Windows cumulative update in response to CVE-2026-68272 alone. Microsoft’s WSL documentation says normal WSL GPU access is mediated through
/dev/dxgand the Windows GPU stack, not the Linux AMDGPU command-submission interface at issue here. Review Linux dual-boot installations, Hyper-V Linux guests with direct GPU access, bare-metal Linux machines, and GPU-enabled Linux containers instead.
The unresolved item is the NVD record itself. Until NVD becomes reachable and publishes complete metadata, there is no independently verified public severity score, affected-kernel range, or exploit status to rely on. The upstream code establishes the defect and the remedy now: reject undersized
CP_GFX_SHADOWchunks before the AMDGPU driver dereferences them.