In the Linux kernel, the following vulnerability has been resolved:
drm/amdgpu: fix lock leak on ENOMEM in AMDGPU_GEM_OP_GET_MAPPING_INFO
The AMDGPU_GEM_OP_GET_MAPPING_INFO branch of amdgpu_gem_op_ioctl() holds three cleanup-tracked resources before calling kvcalloc(): the drm_gem_object reference from drm_gem_object_lookup(), the drm_exec lock on the looked-up GEM via drm_exec_lock_obj(), and the drm_exec lock on the per-process VM root page directory via amdgpu_vm_lock_pd(). All three are released by the out_exec label that every other error path in this function jumps to. The kvcalloc() failure path returns -ENOMEM directly, skipping out_exec and leaking all three.
The leaked per-process VM root PD dma_resv lock is the load-bearing leak: any subsequent operation on the same VM (further GEM ops, command-submission, eviction, TTM shrinker callbacks) blocks on the held lock. DRM_IOCTL_AMDGPU_GEM_OP is DRM_AUTH | DRM_RENDER_ALLOW, so this is an unprivileged-local denial of service against the caller's GPU context, reachable by any process with /dev/dri/renderD* access.
Route the failure through out_exec so drm_exec_fini() and drm_gem_object_put() run.
Reproduced on stock 7.0.0-10, Ryzen 7 5700U / Radeon Vega (Lucienne): the failing ioctl returns -ENOMEM and a second GET_MAPPING_INFO on the same fd then blocks in drm_exec_lock_obj() on the leaked dma_resv. SIGKILL on the caller does not reap the task; the fd-release path during process exit goes through amdgpu_gem_object_close() -> drm_exec_prepare_obj() on the same lock, leaving the task in D state until the box is rebooted. The patched kernel was not rebuilt and re-tested on this hardware; the fix is mechanical. Tested on a single Lucienne / Vega box only.
Ziyi Guo posted an independent INT_MAX-bound check for args->num_entries in the same branch [1]; the two patches are complementary and can land in either order.
(cherry picked from commit b69d3256d79de15f54c322986ff4da68f1d65b0a)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Redhat_linux | — | No solution exists | Aug 4, 2026 | Jul 19, 2026 |
| Ubuntu | — | Upgrade linux-image-7.0.0-1015-raspiUpgrade linux-image-aws-64k-7.0Upgrade linux-image-7.0.0-1009-aws-64kUpgrade linux-image-7.0.0-1010-ibmUpgrade linux-image-raspi-7.0Upgrade linux-image-aws-64kUpgrade linux-image-nvidia-bos-7.0Upgrade linux-image-oracleUpgrade linux-image-7.0.0-1010-azureUpgrade linux-image-aws-7.0Upgrade linux-image-gcp-7.0Upgrade linux-image-nvidia-hwe-26.04Upgrade linux-image-gcp-64kUpgrade linux-image-raspi-realtime-7.0Upgrade linux-image-7.0.0-1016-nvidiaUpgrade linux-image-nvidia-64k-hwe-26.04Upgrade linux-image-7.0.0-1014-azureUpgrade linux-image-gcp-64k-7.0Upgrade linux-image-7.0.0-1015-raspi-realtimeUpgrade linux-image-7.0.0-2016-nvidia-bos-64kUpgrade linux-image-nvidia-bosUpgrade linux-image-nvidia-7.0Upgrade linux-image-7.0.0-1011-gcp-64kUpgrade linux-image-azure-fdeUpgrade linux-image-7.0.0-1008-oracleUpgrade linux-image-raspiUpgrade linux-image-7.0.0-1009-azure-fdeUpgrade linux-image-nvidiaUpgrade linux-image-oracle-64k-7.0Upgrade linux-image-7.0.0-1016-nvidia-64kUpgrade linux-image-nvidia-bos-64kUpgrade linux-image-azureUpgrade linux-image-azure-fde-7.0Upgrade linux-image-awsUpgrade linux-image-ibm-7.0Upgrade linux-image-7.0.0-2016-nvidia-bosUpgrade linux-image-7.0.0-1009-awsUpgrade linux-image-nvidia-bos-64k-7.0Upgrade linux-image-nvidia-64k-7.0Upgrade linux-image-oracle-7.0Upgrade linux-image-gcpUpgrade linux-image-7.0.0-1008-oracle-64kUpgrade linux-image-azure-7.0Upgrade linux-image-oracle-64kUpgrade linux-image-7.0.0-1011-gcpUpgrade linux-image-nvidia-64kUpgrade linux-image-ibmUpgrade linux-image-raspi-realtime | Jul 21, 2026 | Jul 20, 2026 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub