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

CVE-2026-46263: Linux Kernel Buffer Overflow Vulnerability

CVE-2026-46263 is a buffer overflow flaw in the Linux kernel's AMD display driver that causes out-of-bounds memory access. This article covers the technical details, affected versions, security impact, and mitigation.

Published:

CVE-2026-46263 Overview

CVE-2026-46263 is an out-of-bounds array access vulnerability in the Linux kernel's AMD GPU display driver (drm/amd/display). The flaw resides in the dcn35_stream_encoder_create() function within dcn351_resource.c, where the eng_id parameter is used directly as an index into the stream_enc_regs[] array without proper bounds validation. The array contains only five entries, but eng_id can reach ENGINE_ID_DIGF (value 5) or be negative, allowing reads past the array boundary.

Critical Impact

Triggering the vulnerable code path can cause out-of-bounds memory access in kernel space, leading to memory corruption or denial of service on systems using AMD DCN3.5 display hardware.

Affected Products

  • Linux kernel versions containing the drm/amd/display DCN3.5 resource code prior to the fix
  • AMD GPU display driver component (dcn351_resource.c)
  • Distributions shipping affected Linux kernel builds with AMD DCN3.5 hardware support

Discovery Timeline

  • 2026-06-03 - CVE-2026-46263 published to NVD
  • 2026-06-03 - Last updated in NVD database

Technical Details for CVE-2026-46263

Vulnerability Analysis

The vulnerability exists in the AMD Display Core Next (DCN) 3.5 stream encoder creation path. The function dcn35_stream_encoder_create() accepts an enum engine_id eng_id parameter and uses it directly to index stream_enc_regs[], which is sized for five elements. The guard condition if (eng_id <= ENGINE_ID_DIGF) permits values up to and including 5, but valid indices range from 0 to 4. When eng_id equals ENGINE_ID_DIGF (5), the access &stream_enc_regs[eng_id] reads one element beyond the array.

Static analysis by Smatch also flagged that eng_id, declared as a signed type, could theoretically be negative, which would produce an even more severe out-of-bounds read. This issue falls under [CWE-125] Out-of-Bounds Read and [CWE-129] Improper Validation of Array Index.

Root Cause

The root cause is an off-by-one boundary check combined with insufficient validation of a signed index value. The original comparison used <= against ENGINE_ID_DIGF instead of < against ARRAY_SIZE(stream_enc_regs). The fix introduces an explicit bounds check using ARRAY_SIZE() to verify that eng_id is within the valid range before it is used as an array subscript.

Attack Vector

Exploitation requires triggering the AMD DCN3.5 stream encoder creation path with a crafted or unexpected eng_id value. This typically occurs during display pipeline initialization or mode-setting operations. A local attacker with the ability to influence display configuration parameters, or a malformed hardware configuration, could reach the vulnerable code. The result is kernel memory read past the intended buffer, which may cause kernel panics, undefined behavior, or information disclosure depending on adjacent memory contents.

No public proof-of-concept exploit is associated with this CVE. The issue was identified through static analysis (Smatch) rather than active exploitation.

Detection Methods for CVE-2026-46263

Indicators of Compromise

  • Unexpected kernel oops or panic messages referencing dcn35_stream_encoder_create or stream_enc_regs in dmesg output
  • KASAN (Kernel Address Sanitizer) reports flagging out-of-bounds access in drivers/gpu/drm/amd/display/dc/resource/dcn351/dcn351_resource.c
  • Display subsystem crashes or GPU hangs on systems with AMD DCN3.5 hardware

Detection Strategies

  • Enable KASAN in kernel test builds to catch out-of-bounds access at runtime during display initialization
  • Audit running kernel versions against the patched commits referenced in the Linux stable tree
  • Use static analysis tools such as Smatch on local kernel forks that backport AMD display driver changes

Monitoring Recommendations

  • Monitor /var/log/kern.log and journalctl -k output for AMD GPU driver faults and DRM subsystem errors
  • Track kernel package versions across endpoints and validate they include the upstream fix
  • Correlate display initialization events with system stability metrics on AMD DCN3.5-equipped hardware

How to Mitigate CVE-2026-46263

Immediate Actions Required

  • Apply the upstream Linux kernel patches that introduce the ARRAY_SIZE() bounds check in dcn35_stream_encoder_create()
  • Update affected Linux distributions to a kernel build containing the fix once vendors release patched packages
  • Inventory systems running AMD GPUs with DCN3.5 display hardware to prioritize remediation

Patch Information

The fix has been merged into the Linux stable tree across multiple branches. Refer to the following commits for the patch content and backport details:

The patch replaces the original eng_id <= ENGINE_ID_DIGF comparison with an explicit bounds check against ARRAY_SIZE(stream_enc_regs), ensuring the index is always within the array's valid range.

Workarounds

  • No documented runtime workaround exists; the fix requires a kernel update
  • On systems where patching is delayed, restrict access to display configuration interfaces and avoid loading untrusted kernel modules that interact with the AMD DRM subsystem
  • Consider booting with alternative display drivers if AMD DCN3.5 hardware is not required for the workload

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.