KernelScan.io

HIGH Introduced in 6.0

drm/amd PlaneReset UAF

CVE-2026-93176

CVSS 7.0 / 10.0 NVD

CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H

KernelScan AI7.0HIGH

01

In the Linux kernel, the following vulnerability has been resolved: drm/amd/display: Fix dangling pointer in plane reset function amdgpu_dm_plane_drm_plane_reset() frees the old state before allocating a new one. If kzalloc() fails, the function returns without updating the state pointer, leaving a dangling pointer to already freed memory. Fix this by allocating the new state first. On allocation failure, the old state remains untouched and the function safely returns. Found by Linux Verification Center (linuxtesting.org) with SVACE. [adjust for movement around current amd-staging-drm-next]

02

Engine v0.6.0

Risk summary

A local user with access to an AMD GPU's DRM device node can trigger a use-after-free in the display driver's plane reset function when a memory allocation fails under pressure. The dangling pointer to freed kernel memory can be exploited for code execution, information disclosure, or a system crash. Systems with AMD GPUs that expose the DRI device to untrusted or containerized workloads are at highest risk.

Affecteddrivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c (drm/amd display)

Vulnerability analysis

The AMD display driver's plane reset function destroys the existing plane state object before attempting to allocate a replacement. If the allocation fails — for instance under memory pressure — the function returns early, but the internal pointer still references the now-freed memory, turning any later access into a use-after-free. The fix reorders the operations so the new state is allocated first; only after a successful allocation is the old state destroyed, and a failed allocation leaves the previous state untouched and valid. This code path is reachable locally by any user with access to the AMD GPU's DRM device node, and triggering the bug requires inducing an allocation failure at the right moment.

03

BranchIntroducedFixed inPatch commit
6.126.06.12.1140999a267bdc1
6.186.06.18.573d8391d3149a
6.66.06.6.160cda8af27b787
7.26.07.2.680c0f51aced4
mainline6.07.398cad4bd1443

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Affected — no CIP fix yet (latest 6.12.112-cip33)
cip/6.1Affected — no CIP fix yet (latest 6.1.189-cip61)
cip/6.1-rtAffected — no CIP fix yet (latest 6.1.189-cip61-rt32)