CVE-2024-49970
Medium · 5.5CVSS
5.5
EPSS
0.3%
Published
Oct 21, 2024
CISA due date
—
Cloudanix analysis
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
- Obtain local code execution or user context on a vulnerable Linux system with DCN401 hardware
- Trigger display resource initialization paths that call dcn401_stream_encoder_create with eng_id=5
- 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
- CVE-2025-39885 In the Linux kernel, the following vulnerability has been resolved: ocfs2: fix recursive… Also affects linux
- CVE-2025-39883 In the Linux kernel, the following vulnerability has been resolved: mm/memory-failure… Also affects linux
- CVE-2025-39876 In the Linux kernel, the following vulnerability has been resolved: net: fec: Fix… Also affects linux
- CVE-2025-39869 In the Linux kernel, the following vulnerability has been resolved: dmaengine: ti: edma… Also affects linux
- CVE-2025-39873 In the Linux kernel, the following vulnerability has been resolved: can: xilinx_can… Also affects linux
- CVE-2025-39863 In the Linux kernel, the following vulnerability has been resolved: wifi: brcmfmac: fix… Also affects linux
- CVE-2025-39865 In the Linux kernel, the following vulnerability has been resolved: tee: fix NULL pointer… Also affects linux
- CVE-2025-39866 In the Linux kernel, the following vulnerability has been resolved: fs: writeback: fix… Also affects linux