Cloudanix VulnDB

CVE-2024-49970

Medium · 5.5

CVSS

5.5

EPSS

0.3%

Published

Oct 21, 2024

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A programming mistake in the graphics driver for certain AMD chips could let software on the same computer read or write memory it should not, potentially causing crashes or security problems until the operating system is updated.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Moderate
Impact
Privilege Gain
Component
OS kernel
Class
Buffer Overflow
Remediation
Patch
Effort
Low
Patch risk
Low

What it actually does

Out-of-bounds array access in dcn401_stream_encoder_create when eng_id reaches 5 against a four-element stream_enc_regs array, resulting in buffer overflow and undefined behavior in the AMD display driver.

Why it matters to the business

Systems using affected AMD DCN401 hardware may experience kernel instability, crashes, or potential local privilege escalation; urgency remains low given absence from known exploitation lists and modest exploit probability, though Linux kernel prevalence amplifies patch priority across distributions.

How an attack unfolds

An attacker with local access crafts conditions to invoke stream encoder creation passing an out-of-bounds eng_id of 5, triggering the missing bounds check and overflowing the registers array; listed threat actor campaigns targeting Linux kernel out-of-bounds issues illustrate possible paths but no confirmed active exploitation exists for this specific flaw.

How to fix it

Update the Linux kernel to a version containing commit b219b46ad42df1dea9258788bcfea37181f3ccb2 or later; for Rocky Linux 8 packages such as thunderbird apply the fixed build 78.11.0-1.el8_4 or equivalent distribution kernel update that backports the bounds check.

How to confirm the fix worked

Confirm the patched kernel version is running, verify the dcn401_resource.c file contains the added bounds check before array access, and test stream encoder creation under normal display workloads without triggering the prior overflow condition.

Typical attack path

  1. Obtain local code execution or user context on a vulnerable Linux system with DCN401 hardware
  2. Trigger display resource initialization paths that call dcn401_stream_encoder_create with eng_id=5
  3. Cause out-of-bounds memory access and subsequent undefined behavior for crash or escalation

How to detect it

Examine kernel logs and dmesg output around display initialization for buffer overflow warnings or smatch-style errors referencing stream_enc_regs; review audit logs for unusual display resource allocation attempts by local processes on AMD hardware.

What your security team should do

  • Prioritize kernel updates on all AMD DCN401 systems within standard change windows
  • Monitor upstream stable kernel releases for additional backports
  • Review local display driver initialization logs for any prior unexplained crashes that could indicate attempted triggering

The record

In the Linux kernel, the following vulnerability has been resolved: drm/amd/display: Implement bounds check for stream encoder creation in DCN401 'stream_enc_regs' array is an array of dcn10_stream_enc_registers structures. The array is initialized with four elements, corresponding to the four calls to stream_enc_regs() in the array initializer. This means that valid indices for this array are 0, 1, 2, and 3. The error message 'stream_enc_regs' 4 <= 5 below, is indicating that there is an attempt to access this array with an index of 5, which is out of bounds. This could lead to undefined behavior Here, eng_id is used as an index to access the stream_enc_regs array. If eng_id is 5, this would result in an out-of-bounds access on the stream_enc_regs array. Thus fixing Buffer overflow error in dcn401_stream_encoder_create Found by smatch: drivers/gpu/drm/amd/amdgpu/../display/dc/resource/dcn401/dcn401_resource.c:1209 dcn401_stream_encoder_create() error: buffer overflow 'stream_enc_regs' 4 <= 5

Affected packages

Ecosystem Package Introduced Fixed
Debian:11 linux 0 No fix
Debian:12 linux 0 No fix
Debian:13 linux 0 No fix
Linux Kernel 4.15.0 6.11.3
Ubuntu:24.10 linux 0 6.11.0-18.18
Ubuntu:24.10 linux-aws 0 6.11.0-1009.10
Ubuntu:24.10 linux-azure 0 6.11.0-1009.9
Ubuntu:24.10 linux-gcp 0 6.11.0-1009.9
Ubuntu:24.10 linux-lowlatency 0 6.11.0-1010.11
Ubuntu:24.10 linux-oracle 0 6.11.0-1011.12
Ubuntu:24.10 linux-raspi 0 6.11.0-1008.8
Ubuntu:24.10 linux-realtime 0 6.11.0-1005.5
openSUSE:Tumbleweed kernel-source 0 6.11.8-1.1
openSUSE:Tumbleweed kernel-source-longterm 0 6.12.11-1.1

Related vulnerabilities