Description
In the Linux kernel, the following vulnerability has been resolved:

drm/exec: don't immediately add prelocked obj to array of locked objs

When a contention is detected the drm_exec object grabs a reference to
the contended object, unlocks all other objects and pre-locks the
contended one before anything else.

The problem is that it is possible that this pre-locked object was about
to be destroyed and drm_exec is now holding the last reference to it.

So we never actually see this pre-locked object again to be explicitly
locked and so also never reserve a slot for a dma_fence object on it.

Should the driver now use drm_exec_for_each_locked_object() to add a new
fence to all locked objects we eventually see a warning or even a
BUG_ON() to prevent random memory corruption.

Fix this by keeping the prelocked object out of the array of locked objs
until it was explicitly mentioned by the driver again.

If the prelocked object is never mentioned again by the driver
just unlock and drop the reference at the end of the locking loop.
Published: 2026-10-28
Score: n/a
EPSS: n/a
KEV: No
Impact: kernel memory corruption leading to possible kernel panics or arbitrary code execution
Action: Assess Impact
AI Analysis

Impact

The Linux kernel DRM subsystem contains a flaw where a pre‑locked object is prematurely added to the array of locked objects while a reference to it is still active. If that object is destroyed during this period, the kernel may later attempt to operate on a freed area, triggering memory corruption or a BUG_ON in the driver when it adds a fence to the object. This vulnerability is an instance of CWE‑416: Use After Free. The commit that resolves the issue keeps the pre‑locked object out of the locked array until the driver explicitly references it again.

Affected Systems

All Linux kernel releases that include the vulnerable DRM implementation are affected, and no specific version range is provided. Until a patch containing the fix is installed, any system running a kernel built before the change is potentially vulnerable.

Risk and Exploitability

A CVSS score and EPSS figure are not supplied, and the vulnerability is not listed in CISA KEV, so the exploitation probability is uncertain. However, because the failure can corrupt kernel memory and enable arbitrary execution in kernel mode, a local adversary able to trigger contention in DRM drivers could potentially exploit it. The attack vector is not described in the advisory; it would likely involve interactions with graphics drivers that exercise the contested locking path.

Generated by OpenCVE AI on October 28, 2026 at 12:40 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Deploy the latest patched Linux kernel version that incorporates the fix for the DRM exec locking issue.
  • If a patch is not yet available, unload or disable kernel modules that use the DRM exec locking mechanism until an update is released.
  • Continuously monitor system logs for kernel panic messages or unexpected behavior related to DRM drivers, and take corrective action such as rolling back to a known stable kernel if the issue persists.

Generated by OpenCVE AI on October 28, 2026 at 12:40 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 28 Oct 2026 13:30:00 +0000

Type Values Removed Values Added
First Time appeared Linux linux
Vendors & Products Linux linux

Wed, 28 Oct 2026 13:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Wed, 28 Oct 2026 10:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: drm/exec: don't immediately add prelocked obj to array of locked objs When a contention is detected the drm_exec object grabs a reference to the contended object, unlocks all other objects and pre-locks the contended one before anything else. The problem is that it is possible that this pre-locked object was about to be destroyed and drm_exec is now holding the last reference to it. So we never actually see this pre-locked object again to be explicitly locked and so also never reserve a slot for a dma_fence object on it. Should the driver now use drm_exec_for_each_locked_object() to add a new fence to all locked objects we eventually see a warning or even a BUG_ON() to prevent random memory corruption. Fix this by keeping the prelocked object out of the array of locked objs until it was explicitly mentioned by the driver again. If the prelocked object is never mentioned again by the driver just unlock and drop the reference at the end of the locking loop.
Title drm/exec: don't immediately add prelocked obj to array of locked objs
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-28T10:35:03.580Z

Reserved: 2026-09-25T10:25:14.396Z

Link: CVE-2026-99147

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-28T11:17:34.767

Modified: 2026-10-28T11:17:34.767

Link: CVE-2026-99147

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-28T13:15:17Z

Weaknesses