Skip to main content
← All vulnerabilities
CVE-2026-99106EUVD-2026-112006GHSA-54R4-5MX4-49PG

drm/amdgpu: free the userptr ranges when a CS fails after parser_bos

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 6.18.59, 7.2.13
None on Exploit-DB, Metasploit or GitHub

Summary

The Linux kernel's AMD GPU driver (amdgpu, the DRM graphics subsystem) is affected. When a command submission fails at certain later stages, memory tracking structures for user-pointer buffers are not freed, so each failed submission leaks kernel memory.

Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.

Read the original description

In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu: free the userptr ranges when a CS fails after parser_bos amdgpu_cs_parser_bos() allocates an HMM range for every userptr entry of the BO list and looks up the user pages. Those ranges are only freed when amdgpu_cs_parser_bos() itself fails or when amdgpu_cs_submit() checks them under the notifier lock. If amdgpu_cs_patch_jobs(), amdgpu_cs_vm_handling(), amdgpu_cs_sync_rings() or the early part of amdgpu_cs_submit() fails, nothing frees them: neither amdgpu_cs_parser_fini() nor amdgpu_bo_list_free() touch e->range. Each such CS then leaks the range, its hmm_pfns array (8 bytes per page of the userptr BO) and the BO reference the range holds. An IB on a ring that patches the CS in place (e.g. VCN) with an unmapped va_start fails in amdgpu_cs_patch_ibs() and takes this path. Free the ranges on those error paths. Ranges amdgpu_cs_submit() already dropped are NULL, so freeing them again is a no-op. (cherry picked from commit c52a9542ed7cfd527feb938bd0accada2ac8d267)

Timeline

  1. CVE published
  2. First seen by cve.now
  3. Record last updated

Affected versions

  • Linux Linux

    Version range not reported

  • Linux Linux

    6.2

  • KernelLinux

    From 6.2.0 · fixed in 6.18.59; From 6.19.0 · fixed in 7.2.13

References 5

git.kernel.org