CVE-2026-63880

Source
https://cve.org/CVERecord?id=CVE-2026-63880
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-63880.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-63880
Downstream
Published
2026-07-19T14:54:52.397Z
Modified
2026-07-21T03:47:31.637930728Z
Summary
drm/amdgpu: fix lock leak on ENOMEM in AMDGPU_GEM_OP_GET_MAPPING_INFO
Details

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

drm/amdgpu: fix lock leak on ENOMEM in AMDGPUGEMOPGETMAPPING_INFO

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 out_exec 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)

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/63xxx/CVE-2026-63880.json",
    "cna_assigner": "Linux"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
4d82724f7f2b847eb0454b1aab5450545b39abd4
Fixed
1eb86334e391695d4a40743b114afc15df4dc506
Fixed
8f643d534ffc6f1b6182e4f3acff8f04890504b9
Fixed
2e7f55eb408c3f72ee1957a0d0ad11d8648a6379

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-63880.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.18.0
Fixed
6.18.35
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
7.0.12

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-63880.json"