Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-68106

CVE-2026-68106: Linux Kernel AMDGPU DoS Vulnerability

CVE-2026-68106 is a denial of service flaw in the Linux kernel AMDGPU driver caused by division by zero with invalid UVD dimensions. This article covers the technical details, affected versions, and mitigation steps.

Published:

CVE-2026-68106 Overview

CVE-2026-68106 is a division by zero vulnerability in the Linux kernel's AMD GPU driver (drm/amdgpu). The flaw resides in the Unified Video Decoder (UVD) H.264 decode paths, where invalid frame dimensions trigger a kernel-level arithmetic exception. When a caller supplies a width or height less than 16, the derived macroblock counts width_in_mb or height_in_mb evaluate to zero. The resulting fs_in_mb value of zero causes a division by zero when calculating num_dpb_buffer for both the standard H.264 and H.264 performance decode paths. The kernel fix adds input validation that rejects frames with dimensions below 16 before any dependent calculations execute.

Critical Impact

A local, authenticated user with access to the amdgpu device node can trigger a kernel division by zero, causing denial of service on affected Linux systems.

Affected Products

  • Linux kernel with the drm/amdgpu driver enabled
  • Systems using AMD GPUs with UVD hardware for H.264 decode
  • Distributions shipping the vulnerable kernel prior to the referenced stable commits

Discovery Timeline

  • 2026-08-10 - CVE-2026-68106 published to NVD
  • 2026-08-13 - Last updated in NVD database

Technical Details for CVE-2026-68106

Vulnerability Analysis

The vulnerability affects the AMD GPU UVD H.264 decode initialization logic in the Linux kernel's Direct Rendering Manager (DRM) subsystem. The decoder computes the frame size in macroblocks by dividing input width and height by 16. When either dimension falls below 16, integer truncation produces a zero macroblock count. The subsequent product fs_in_mb = width_in_mb * height_in_mb becomes zero. The driver then uses fs_in_mb as a divisor when computing num_dpb_buffer, the number of Decoded Picture Buffer entries required for H.264 decoding. This unchecked division triggers a kernel arithmetic exception.

A local user able to open the amdgpu render node and submit a UVD H.264 decode job with attacker-controlled dimensions can reach the vulnerable arithmetic. The result is a kernel oops or panic, depending on kernel configuration, disrupting availability on the affected host [CWE-369].

Root Cause

The root cause is missing input validation on user-supplied frame dimensions before macroblock arithmetic. The decode path assumed callers would provide dimensions of at least 16 pixels in both axes, matching the H.264 macroblock size, but did not enforce this constraint.

Attack Vector

Exploitation requires local access and privileges sufficient to open the amdgpu DRM device. The attacker submits a crafted UVD decode command with width or height less than 16. No user interaction is required beyond submitting the malformed job. The impact is limited to denial of service on the local host.

No verified exploit code has been published. Refer to the upstream fix commits for technical details: Kernel Git Commit 3e41d26 and related stable backports.

Detection Methods for CVE-2026-68106

Indicators of Compromise

  • Kernel oops or panic messages referencing divide error within amdgpu_uvd functions in dmesg or journalctl -k output
  • Unexpected reboots or GPU driver resets on hosts running vulnerable kernels with AMD GPUs
  • Repeated crashes correlated with unprivileged user processes invoking VA-API or VDPAU H.264 decode

Detection Strategies

  • Inventory hosts by running uname -r and comparing against fixed stable kernel versions referenced in the upstream commits
  • Monitor kernel ring buffer for divide_error exceptions originating in amdgpu symbols
  • Audit which local accounts and containers have access to /dev/dri/renderD* device nodes

Monitoring Recommendations

  • Forward kern.log and dmesg output to a central log platform and alert on divide error or RIP: .*amdgpu_uvd patterns
  • Track process lineage for user-space processes that submit UVD decode jobs prior to a crash event
  • Alert on abnormal frequencies of amdgpu driver resets within short time windows

How to Mitigate CVE-2026-68106

Immediate Actions Required

  • Apply the vendor-provided kernel update containing the upstream fix to all Linux systems using AMD GPUs
  • Restrict access to /dev/dri/renderD* nodes to trusted users and service accounts only
  • On multi-tenant hosts and container platforms, remove GPU device passthrough from untrusted workloads until patched

Patch Information

The fix is cherry-picked from upstream commit 3e41d26c70b0a459d041cc19482a226c4b7423cb, which adds validation to reject frames with width or height below 16 and uses warn_once to avoid log spam. Stable backports are tracked in the following commits: 0c01c81, 52f9a58, a00946b, be725ab, and ffb33d4. Track your distribution's security advisory for the corresponding backport version.

Workarounds

  • Remove or restrict permissions on amdgpu render nodes for untrusted local users using standard Linux group membership on the render and video groups
  • Disable UVD-based hardware H.264 decode in userspace media stacks (VA-API, VDPAU) where GPU decoding is not required
  • Isolate untrusted workloads that require GPU access into dedicated hosts until the kernel patch is deployed
bash
# Verify amdgpu render node permissions and group ownership
ls -l /dev/dri/renderD*
getent group render

# Confirm the running kernel version to compare against patched releases
uname -r

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.