CVE-2026-53054 Overview
CVE-2026-53054 is a locking defect in the Linux kernel's Direct Rendering Manager (DRM) driver for Qualcomm MSM GPUs. The flaw resides in the VM_BIND UNMAP code path, where an incorrect argument caused buffer objects (BOs) involved in UNMAP operations to not always be locked. Because _NO_SHARE objects share a common reservation object with the virtual memory (VM) — which is always locked — only non-_NO_SHARE BOs are affected. Upstream maintainers resolved the issue through commits referenced in the Linux kernel stable tree.
Critical Impact
Improper locking in the drm/msm UNMAP path can lead to concurrent access to buffer objects, producing race conditions, memory corruption, or kernel instability on affected Qualcomm MSM GPU systems.
Affected Products
- Linux kernel drm/msm driver (Qualcomm Adreno/MSM GPU subsystem)
- Kernel versions containing the VM_BIND UNMAP implementation prior to the referenced stable commits
- Distributions packaging affected Linux kernel branches
Discovery Timeline
- 2026-06-24 - CVE-2026-53054 published to NVD
- 2026-06-24 - Last updated in NVD database
Technical Details for CVE-2026-53054
Vulnerability Analysis
The vulnerability exists in the drm/msm kernel driver, which manages Qualcomm MSM-family GPUs. The VM_BIND interface allows userspace to map and unmap GPU buffer objects into a GPU virtual address space. During UNMAP operations, the driver must acquire the reservation object (dma-resv) lock for each affected buffer object to ensure serialized access against concurrent submissions and migrations.
A wrong argument was passed to the locking helper, so the buffer objects involved in UNMAP operations were not always locked. Reviewing the upstream patch description, the issue was masked for buffer objects created with the _NO_SHARE flag because those objects share the VM's reservation object, which is always held during the operation. Non-_NO_SHARE buffer objects, which carry their own dma-resv, were left unprotected.
Root Cause
The root cause is incorrect parameter usage when invoking the reservation locking routine inside the VM_BIND UNMAP path. The defect falls under the kernel driver and race condition class of issues, where atomicity over shared GPU memory state was not guaranteed. Without the proper lock, the UNMAP path could proceed while other code paths concurrently manipulated the same buffer object.
Attack Vector
Exploitation requires local code execution with the ability to issue GPU ioctls against the drm/msm device node, typically /dev/dri/card* or /dev/dri/renderD*. An unprivileged process able to allocate non-_NO_SHARE buffer objects and submit VM_BIND UNMAP operations could race the unlocked path. The technical references are available in the Linux kernel stable commits, follow-up commit, and additional fix.
Detection Methods for CVE-2026-53054
Indicators of Compromise
- Unexplained kernel oops, warnings, or BUG_ON messages referencing drm/msm, msm_gem, or dma_resv in dmesg
- GPU hangs, display freezes, or process termination on systems using Qualcomm MSM/Adreno GPUs
- KASAN or lockdep splats implicating the VM_BIND UNMAP code path
Detection Strategies
- Audit installed kernel package versions against vendor advisories to identify hosts running pre-patch drm/msm code
- Enable lockdep and KASAN in test or canary kernels to surface the missing lock acquisition during UNMAP
- Monitor crash telemetry from endpoints with Qualcomm MSM GPUs for repeated GPU driver faults
Monitoring Recommendations
- Forward kernel logs (/var/log/kern.log, journald) to a centralized analytics platform for drm/msm error correlation
- Track package update status across Linux fleets to confirm patched kernels are deployed
- Alert on processes issuing high-frequency DRM_IOCTL_MSM_GEM_* calls combined with kernel warnings, which may indicate exploitation attempts
How to Mitigate CVE-2026-53054
Immediate Actions Required
- Upgrade to a Linux kernel build that includes commits 206f812e, 85042c2c, and d9ecf758 in the drm/msm driver
- Apply distribution-provided kernel updates for stable branches shipping the VM_BIND interface
- Restrict local access on multi-tenant systems using Qualcomm MSM GPUs until patched
Patch Information
The fix corrects the argument passed to the reservation locking helper in the VM_BIND UNMAP path so that all involved buffer objects are properly locked. The patches are tracked in the kernel stable tree at commit 206f812e, commit 85042c2c, and commit d9ecf758. The original review thread is available on the freedesktop.org Patchwork.
Workarounds
- Limit access to /dev/dri/card* and /dev/dri/renderD* to trusted users via group permissions where userspace GPU access is not required
- Avoid workloads that rely on non-_NO_SHARE GPU buffer objects through VM_BIND UNMAP on unpatched kernels
- Apply vendor-supplied hotfix kernels where full upstream upgrades are not yet feasible
# Verify the running kernel version and drm/msm module status
uname -r
modinfo msm | grep -E '^(version|filename|srcversion):'
# Restrict DRM render node access to a trusted group
sudo chgrp render /dev/dri/renderD*
sudo chmod 0660 /dev/dri/renderD*
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

