CVE-2026-63880: drm/amdgpu: fix lock leak on ENOMEM in AMDGPU_GEM_OP_GET_MAPPING_INFO

Published Jul 19, 2026
·
Updated

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

drm/amdgpu: fix lock leak on ENOMEM in AMDGPUGEMOPGETMAPPINGINFO

The AMDGPUGEMOPGETMAPPINGINFO branch of amdgpugemopioctl() holds three cleanup-tracked resources before calling kvcalloc(): the drmgemobject reference from drmgemobjectlookup(), the drmexec lock on the looked-up GEM via drmexeclockobj(), and the drmexec lock on the per-process VM root page directory via amdgpuvmlockpd(). All three are released by the outexec label that every other error path in this function jumps to. The kvcalloc() failure path returns -ENOMEM directly, skipping outexec and leaking all three.

The leaked per-process VM root PD dmaresv 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. DRMIOCTLAMDGPUGEMOP is DRMAUTH | DRMRENDERALLOW, 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 outexec so drmexecfini() and drmgemobjectput() run.

Reproduced on stock 7.0.0-10, Ryzen 7 5700U / Radeon Vega (Lucienne): the failing ioctl returns -ENOMEM and a second GETMAPPINGINFO on the same fd then blocks in drmexeclockobj() on the leaked dmaresv. SIGKILL on the caller does not reap the task; the fd-release path during process exit goes through amdgpugemobjectclose() -> drmexecprepareobj() 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 INTMAX-bound check for args->numentries in the same branch [1]; the two patches are complementary and can land in either order.

(cherry picked from commit b69d3256d79de15f54c322986ff4da68f1d65b0a)

Affected Software

132 affected componentsFixes available
Linux Linux kernel
Linux Linux kernel>=6.18<6.18.35
Linux Linux kernel>=6.19<7.0.12
Linux Linux kernel=7.1-rc1
Linux Linux kernel=7.1-rc2
Linux Linux kernel=7.1-rc3
Linux Linux kernel=7.1-rc4
Linux Linux kernel=7.1-rc5
debian/linux<7.0.12-1
7.0.12-1
linux/kernel>=6.18.0<6.18.35
6.18.35
linux/kernel>=6.19.0<7.0.12
7.0.12
debian/linux
6.1.176-16.1.190-16.12.107-16.12.115-27.2.12-17.2.15-1
ubuntu/linux-hwe-edge*
ubuntu/linux-aws-5.0*
ubuntu/linux-aws-5.3*
ubuntu/linux-azure*
ubuntu/linux-azure-5.3*
ubuntu/linux-azure-edge*
ubuntu/linux-gcp*
ubuntu/linux-gcp-5.3*
ubuntu/linux-gke-4.15*
ubuntu/linux-gke-5.4*
ubuntu/linux-gkeop-5.4*
ubuntu/linux-hwe*
ubuntu/linux-hwe-edge*
ubuntu/linux-oem*
ubuntu/linux-oracle-5.0*
ubuntu/linux-oracle-5.3*
ubuntu/linux-aws-5.11*
ubuntu/linux-aws-5.13*
ubuntu/linux-aws-5.8*
ubuntu/linux-azure-5.11*
ubuntu/linux-azure-5.13*
ubuntu/linux-azure-5.8*
ubuntu/linux-azure-fde*
ubuntu/linux-gcp-5.11*
ubuntu/linux-gcp-5.13*
ubuntu/linux-gcp-5.8*
ubuntu/linux-gke*
ubuntu/linux-gke-5.15*
ubuntu/linux-gkeop*
ubuntu/linux-gkeop-5.15*
ubuntu/linux-hwe-5.11*
ubuntu/linux-hwe-5.13*
ubuntu/linux-hwe-5.8*
ubuntu/linux-intel-5.13*
ubuntu/linux-oem-5.10*
ubuntu/linux-oem-5.13*
ubuntu/linux-oem-5.6*
ubuntu/linux-oracle-5.11*
ubuntu/linux-oracle-5.13*
ubuntu/linux-oracle-5.8*
ubuntu/linux-raspi2*
ubuntu/linux-riscv*
ubuntu/linux-riscv-5.11*
ubuntu/linux-riscv-5.8*
ubuntu/linux-allwinner-5.19*
ubuntu/linux-aws-5.19*
ubuntu/linux-aws-6.2*
ubuntu/linux-aws-6.5*
ubuntu/linux-azure-5.19*
ubuntu/linux-azure-6.2*
ubuntu/linux-azure-6.5*
ubuntu/linux-azure-fde-5.19*
ubuntu/linux-azure-fde-6.2*
ubuntu/linux-gcp-5.19*
ubuntu/linux-gcp-6.2*
ubuntu/linux-gcp-6.5*
ubuntu/linux-hwe-5.19*
ubuntu/linux-hwe-6.2*
ubuntu/linux-hwe-6.5*
ubuntu/linux-intel-iot-realtime*
ubuntu/linux-lowlatency-hwe-5.19*
ubuntu/linux-lowlatency-hwe-6.2*
ubuntu/linux-lowlatency-hwe-6.5*
ubuntu/linux-nvidia-6.2*
ubuntu/linux-nvidia-6.5*
ubuntu/linux-oem-5.17*
ubuntu/linux-oem-6.0*
ubuntu/linux-oem-6.1*
ubuntu/linux-oem-6.5*
ubuntu/linux-oracle-6.5*
ubuntu/linux-realtime*
ubuntu/linux-riscv*
ubuntu/linux-riscv-5.19*
ubuntu/linux-riscv-6.5*
ubuntu/linux-starfive-5.19*
ubuntu/linux-starfive-6.2*
ubuntu/linux-starfive-6.5*
ubuntu/linux-aws-6.14*
ubuntu/linux-aws-6.17*
ubuntu/linux-azure-6.11*
ubuntu/linux-azure-6.14*
ubuntu/linux-azure-7.0<7.0.0-1014.14~24.04.1
7.0.0-1014.14~24.04.1
ubuntu/linux-azure-fde-6.14*
ubuntu/linux-azure-fde-7.0<7.0.0-1013.13~24.04.1
7.0.0-1013.13~24.04.1
ubuntu/linux-azure-nvidia-6.14*
ubuntu/linux-gcp-6.11*
ubuntu/linux-gcp-6.14*
ubuntu/linux-gcp-7.0<7.0.0-1011.11~24.04.1
7.0.0-1011.11~24.04.1
ubuntu/linux-hwe-6.11*
ubuntu/linux-hwe-6.14*
ubuntu/linux-hwe-7.0<7.0.0-28.28~24.04.1
7.0.0-28.28~24.04.1
ubuntu/linux-lowlatency-hwe-6.11*
ubuntu/linux-nvidia-6.11*
ubuntu/linux-nvidia-7.0<7.0.0-1016.16~24.04.1
7.0.0-1016.16~24.04.1
ubuntu/linux-oem-6.11*
ubuntu/linux-oem-6.14*
ubuntu/linux-oem-6.8*
ubuntu/linux-oracle-6.14*
ubuntu/linux-oracle-7.0<7.0.0-1011.11~24.04.1
7.0.0-1011.11~24.04.1
ubuntu/linux-raspi-realtime*
ubuntu/linux-realtime*
ubuntu/linux-riscv*
ubuntu/linux-riscv-6.14*
ubuntu/linux-riscv-6.17*
ubuntu/linux-riscv-7.0<7.0.0-28.28.1~24.04.3
7.0.0-28.28.1~24.04.3
ubuntu/linux-realtime-6.14*
ubuntu/linux<7.0.0-28.28
7.0.0-28.28
ubuntu/linux-aws<7.0.0-1009.9
7.0.0-1009.9
ubuntu/linux-azure<7.0.0-1010.10
7.0.0-1010.10
ubuntu/linux-azure-fde<7.0.0-1009.9
7.0.0-1009.9
ubuntu/linux-gcp<7.0.0-1008.8
7.0.0-1008.8
ubuntu/linux-gke<7.0.0-1003.4
7.0.0-1003.4
ubuntu/linux-ibm<7.0.0-1010.10
7.0.0-1010.10
ubuntu/linux-nvidia<7.0.0-1016.16
7.0.0-1016.16
ubuntu/linux-nvidia-bos<7.0.0-2016.16
7.0.0-2016.16
ubuntu/linux-oem-7.0<7.0.0-1009.9
7.0.0-1009.9
ubuntu/linux-oracle<7.0.0-1008.8
7.0.0-1008.8
ubuntu/linux-raspi<7.0.0-1015.15
7.0.0-1015.15
ubuntu/linux-realtime<7.0.0-28.28.1
7.0.0-28.28.1
ubuntu/linux-riscv<7.0.0-28.28.1
7.0.0-28.28.1

Event History

Jul 19, 2026
CVE Published
via MITRE·02:54 PM
Data Sourced
via MITRE·02:54 PM
Description
Data Sourced
via OSV·02:54 PM
DescriptionAffected Software
Data Sourced
via NVD·04:17 PM
RemedyDescriptionSeverityWeaknessAffected Software
Data Sourced
via OSV·04:17 PM
Severity

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203