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

CVE-2026-53285: Linux Kernel AMD Display DoS Vulnerability

CVE-2026-53285 is a denial of service vulnerability in the Linux kernel's AMD display driver that causes kernel crashes during memory allocation. This article covers the technical details, affected versions, and mitigation.

Published:

CVE-2026-53285 Overview

CVE-2026-53285 affects the Linux kernel drm/amd/display subsystem. The flaw resides in the DCN32 bandwidth validation path, where dcn32_validate_bandwidth() wraps dcn32_internal_validate_bw() between DC_FP_START() and DC_FP_END(). On x86 non-RT kernels, DC_FP_START acquires fpregs_lock(), which disables local softirqs. Inside this region, the DML1 path calls dcn32_enable_phantom_plane(), which invokes kvzalloc() to allocate roughly 335 KiB for dc_plane_state. That allocation reaches the vmalloc path and triggers BUG_ON(in_interrupt()), resulting in a kernel crash. The fix wraps the dc_state_create_phantom_plane() call in the DC_RUN_WITH_PREEMPTION_ENABLED() macro to permit preemption during the allocation.

Critical Impact

A local user triggering DCN32 display validation on affected AMD GPU hardware can cause a kernel BUG_ON crash and denial of service.

Affected Products

  • Linux kernel builds including the drm/amd/display DCN32 driver prior to the referenced stable commits
  • Systems using AMD GPUs handled by the DCN32 display pipeline (DML1 path)
  • x86 non-RT kernel configurations where DC_FP_START disables softirqs via fpregs_lock()

Discovery Timeline

  • 2026-06-26 - CVE-2026-53285 published to NVD
  • 2026-06-30 - Last updated in NVD database

Technical Details for CVE-2026-53285

Vulnerability Analysis

The bug is a kernel-context violation in the AMD Display Core (DC) code. dcn32_validate_bandwidth() executes bandwidth calculations that require FPU state, so it brackets its work with DC_FP_START() and DC_FP_END(). On x86 non-RT kernels, DC_FP_START takes fpregs_lock(), which disables local softirqs and forbids sleeping or entering the vmalloc slow path.

Inside that FPU-protected region, the DML1 code path enters dcn32_enable_phantom_plane() and requests a dc_plane_state object roughly 335 KiB in size via kvzalloc(). Allocations of this size fall through kmalloc and reach vmalloc, which enforces BUG_ON(in_interrupt()). The check fires because interrupt/softirq context is treated as disallowed, and the kernel panics.

Root Cause

The root cause is an invalid nesting of a large kvzalloc() allocation inside an FPU-enabled, softirq-disabled region. The DML1 code path did not account for the constraint that memory allocations reaching vmalloc must run with preemption and softirqs enabled. This is a kernel context / atomicity violation rather than a memory-safety bug.

Attack Vector

Triggering the crash requires a code path that exercises DCN32 bandwidth validation with the DML1 phantom-plane allocation, which is reachable from display mode configuration on affected AMD GPU hardware. The result is a local denial of service through a kernel BUG_ON. No remote vector is described in the advisory, and no public exploit is available.

The upstream fix wraps dc_state_create_phantom_plane() with the DC_RUN_WITH_PREEMPTION_ENABLED() macro so the allocation runs outside the FPU-locked region. See the Kernel Git Commit Fix and Kernel Git Commit Update for the patch content, cherry-picked from commit 885ccbef7b94a8b38f69c4211c679021aa27ad11.

Detection Methods for CVE-2026-53285

Indicators of Compromise

  • Kernel panic or BUG: messages referencing BUG_ON(in_interrupt()) from the vmalloc code path
  • Stack traces including dcn32_validate_bandwidth, dcn32_internal_validate_bw, dcn32_enable_phantom_plane, or dc_state_create_phantom_plane
  • Crashes occurring during display mode changes, monitor hotplug, or resume from suspend on AMD DCN32 hardware

Detection Strategies

  • Compare the running kernel against the fixed stable commits 183182235f6d and 30bb2ec6695d to identify unpatched systems
  • Parse dmesg, journalctl -k, and crash dumps for the signature call chain listed above
  • Inventory endpoints with AMD GPUs that use the DCN32 display block to scope exposure

Monitoring Recommendations

  • Forward kernel logs to a centralized logging pipeline and alert on BUG_ON, kernel panic, and repeated amdgpu faults
  • Track kernel package versions across the fleet and flag hosts still running pre-patch builds
  • Correlate crash events with display reconfiguration or graphics workloads to confirm this root cause

How to Mitigate CVE-2026-53285

Immediate Actions Required

  • Update to a Linux kernel that includes the fix commits 183182235f6d53bac62c6c39014738a54a68dfa6 and 30bb2ec6695d62f63db4aa6179c4626834ed0cd6
  • Prioritize patching workstations and servers with AMD GPUs driven by the DCN32 pipeline
  • Enable automated kernel update policies on affected distributions to prevent regression

Patch Information

The upstream fix cherry-picks commit 885ccbef7b94a8b38f69c4211c679021aa27ad11 and wraps dc_state_create_phantom_plane() in the DC_RUN_WITH_PREEMPTION_ENABLED() macro, moving the large kvzalloc() allocation outside the FPU-locked, softirq-disabled region. Apply the vendor kernel package that incorporates the Kernel Git Commit Fix and Kernel Git Commit Update.

Workarounds

  • Avoid display configurations that exercise the DCN32 DML1 phantom-plane path on unpatched hosts where feasible
  • Restrict interactive access on affected systems so untrusted users cannot repeatedly trigger display reconfiguration
  • Roll back to an earlier known-good kernel that does not exhibit this crash if a patched build is not yet available

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.