HIGH 7.0

CVE-2026-53329: Linux Kernel AMD Display Driver Heap Overflow Vulnerability

A memory allocation vulnerability exists in the Linux kernel's AMD display driver. When reserving space for a data structure, the code calculates the required memory size using arithmetic that can overflow, potentially allocating far less memory than needed. This creates a heap overflow condition where subsequent operations write beyond the allocated buffer, potentially allowing local attackers with unprivileged access to crash the system or execute code. The fix replaces the unsafe allocation function with a safer variant that detects and prevents overflow conditions.

Source data · NVD / CISA · public domain

CVSS
3.1 · 7.0 HIGH · CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Weaknesses (CWE)
CWE-674
Affected products
7 configuration(s)
Published / Modified
2026-07-01 / 2026-07-23

NVD description (verbatim)

In the Linux kernel, the following vulnerability has been resolved: drm/amd/display: Use krealloc_array() in dal_vector_reserve() [Why & How] dal_vector_reserve() computes the allocation size as "capacity * vector->struct_size" using uint32_t arithmetic, which can silently wrap to a small value on overflow. This would cause krealloc to return a smaller buffer than expected, leading to heap overflows on subsequent vector appends. Replace krealloc() with krealloc_array() which performs an internal overflow check and returns NULL on wrap, preventing the issue. (cherry picked from commit 37668568641ccc4cc1dbca4923d0a16609dd5707)

8 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

CVE-2026-53329 is an integer overflow vulnerability in the dal_vector_reserve() function within the AMD display subsystem of the Linux kernel (drivers/gpu/drm/amd/display). The vulnerability arises from unsafe uint32_t multiplication: capacity * vector->struct_size is computed without overflow detection. On overflow, this wraps to a small value, causing krealloc() to allocate insufficient memory. Subsequent vector append operations then write past the buffer boundary. The remediation uses krealloc_array(), which performs built-in overflow checking and returns NULL on saturation, preventing allocation of undersized buffers. The CWE classification of CWE-674 (Uncontrolled Recursion) appears to reflect the broader category of unsafe memory operations rather than literal recursion.

Business impact

For organizations running AMD-based Linux systems in production, this vulnerability poses a localized denial-of-service risk and potential privilege escalation vector. A local, unprivileged user could trigger the heap overflow through display driver operations, causing kernel panics or potentially achieving code execution within kernel context. This affects availability (system crashes) and confidentiality/integrity (code execution risk). Systems relying on graphical output or display management are particularly exposed. Server deployments with AMD GPUs or APUs and unprivileged multi-tenant access are at elevated risk.

Affected systems

The Linux kernel is the sole affected platform. All kernel versions incorporating the vulnerable dal_vector_reserve() function in the AMD display driver are in scope. The vulnerability is present in the drm/amd/display subsystem; systems without AMD display hardware or with the display driver compiled out are unaffected. Affected configurations include desktop/workstation systems with AMD discrete or integrated graphics running vulnerable kernel versions.

Exploitability

Exploitation requires local access and unprivileged user privileges (PR:L). No network vector is available. The attack complexity is high (AC:H), suggesting a specific trigger condition or race condition may be necessary to reliably overflow the buffer. However, once exploited, the impact is severe: high confidentiality, integrity, and availability (C:H/I:H/A:H). No public exploit or weaponized code has been identified in the CISA KEV catalog.

Remediation

Apply a kernel update that incorporates commit 37668568641ccc4cc1dbca4923d0a16609dd5707 or a backported equivalent. Verify the exact version numbers from your distribution's security advisory, as patches are released on a per-vendor basis. Systems unable to patch immediately should restrict unprivileged user access or disable the AMD display driver if graphical output is not required.

Patch guidance

Consult your Linux distribution's security advisory for the specific kernel version addressing this vulnerability. Red Hat, Ubuntu, Debian, and other vendors publish patches at different cadences. The upstream fix is based on commit 37668568641ccc4cc1dbca4923d0a16609dd5707; verify this commit is present in your target kernel version. Apply patches during a scheduled maintenance window, as kernel updates typically require a reboot.

Detection guidance

Monitor kernel logs (dmesg) for heap overflow warnings, memory corruption errors, or unexpected kernel panics correlated with display driver activity. Intrusion detection systems may flag unusual memory access patterns in the drm subsystem if instrumented at the kernel level. Practical detection is limited without kernel-level monitoring; focus on timely patching rather than runtime detection.

Why prioritize this

This vulnerability merits high priority despite no active exploitation in the wild (KEV status: false). The severity score of 7.0 (HIGH) reflects substantial impact (code execution risk), and local privilege escalation vectors are routinely exploited in multi-user environments. AMD-based systems in data centers or development environments with unprivileged user populations should be prioritized. The high attack complexity slightly mitigates urgency but does not eliminate it.

Risk score, explained

CVSS 3.1 score of 7.0 is justified by: (1) high impact on confidentiality, integrity, and availability; (2) low attack vector (local only); (3) high attack complexity, suggesting a specific condition or timing-dependent trigger; (4) low privileges required; (5) no user interaction needed. The score reflects a serious but not critical vulnerability; systems with restrictive access controls face lower practical risk than open multi-user systems.

Frequently asked questions

Does this vulnerability affect my system if I don't have AMD graphics hardware?

No. The vulnerability is specific to the AMD display driver subsystem (drm/amd/display). Systems with Intel, NVIDIA, or no discrete GPU are not affected. However, verify your kernel configuration; if the AMD display driver is compiled out, you are unaffected even on AMD hardware.

What is the difference between krealloc() and krealloc_array()?

krealloc() performs a simple memory reallocation without overflow checking. krealloc_array() is a safe wrapper that multiplies array count by element size, detects integer overflow internally, and returns NULL if multiplication would overflow. Using krealloc_array() prevents the undersized allocation that leads to heap overflows.

Can this be exploited remotely?

No. The attack vector is Local (AV:L) only. Exploitation requires local user access to the affected system and the ability to trigger display driver operations. Remote exploitation is not possible.

What should I do if I cannot patch immediately?

Restrict unprivileged user access to systems with AMD graphics if operationally feasible. Disable the display driver or graphical output if not required. Monitor systems closely for signs of kernel crashes or memory errors. Prioritize patching over other non-critical updates.

This analysis is based on the official CVE record and vendor advisories current as of the publication date. Exploit information, patch availability, and vendor timelines may change. Readers must verify patch applicability and version numbers against their distribution's official security channels before deploying updates. This document does not constitute professional security advice; organizations should conduct their own risk assessment and consult with their security teams. Source: NVD (public-domain), retrieved 2026-08-10. Analysis generated by SEC.co (claude-haiku-4-5).