{"id":"CVE-2026-99106","kind":"vulnerability","aliases":["CVE-2026-99106"],"related":[],"title":"Linux amdgpu driver leaks memory when command submission fails","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amdgpu: free the userptr ranges when a CS fails after parser_bos\n\namdgpu_cs_parser_bos() allocates an HMM range for every userptr entry of\nthe BO list and looks up the user pages. Those ranges are only freed when\namdgpu_cs_parser_bos() itself fails or when amdgpu_cs_submit() checks\nthem under the notifier lock. If amdgpu_cs_patch_jobs(),\namdgpu_cs_vm_handling(), amdgpu_cs_sync_rings() or the early part of\namdgpu_cs_submit() fails, nothing frees them: neither\namdgpu_cs_parser_fini() nor amdgpu_bo_list_free() touch e->range.\n\nEach such CS then leaks the range, its hmm_pfns array (8 bytes per page\nof the userptr BO) and the BO reference the range holds. An IB on a ring\nthat patches the CS in place (e.g. VCN) with an unmapped va_start fails\nin amdgpu_cs_patch_ibs() and takes this path.\n\nFree the ranges on those error paths. Ranges amdgpu_cs_submit() already\ndropped are NULL, so freeing them again is a no-op.\n\n(cherry picked from commit c52a9542ed7cfd527feb938bd0accada2ac8d267)","summary":"When an AMD GPU command submission fails after user page lookup, the kernel does not free the HMM range structures it allocated. Each failed submission leaks memory and a buffer object reference.","severity":"unknown","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["amd-gpu","infrastructure","linux-kernel","self-hosted"],"not_affected_if":["amdgpu-not-loaded","no-amd-gpu"],"how_to_check":"- Check the running kernel version with `uname -r` and compare it to the fixed stable kernels listed in the NVD entry\n- Check whether the amdgpu driver is loaded with `lsmod | grep amdgpu`","fix":"- Update the Linux kernel to a stable release that includes the upstream commit c52a9542ed7cfd527feb938bd0accada2ac8d267 (fixed version unknown from sources)","status":"open","published_at":"2026-10-28T11:17:29+00:00","first_seen_at":"2026-10-28T11:32:34+00:00","triaged_at":"2026-10-28T11:37:49+00:00","updated_at":"2026-10-28T11:37:49+00:00","category":"infrastructure","confidence":0.5,"triage":{"at":"2026-10-28T11:37:49Z","model":"claude-haiku-5-5","output":{"fix":"- Update the Linux kernel to a stable release that includes the upstream commit c52a9542ed7cfd527feb938bd0accada2ac8d267 (fixed version unknown from sources)","reach":"local","title":"Linux amdgpu driver leaks memory when command submission fails","impact":"low","summary":"When an AMD GPU command submission fails after user page lookup, the kernel does not free the HMM range structures it allocated. Each failed submission leaks memory and a buffer object reference.","category":"infrastructure","nicknames":[],"who_cares":["linux-kernel","amd-gpu","self-hosted"],"confidence":0.5,"needs_auth":"unknown","worst_case":"Repeated failed submissions exhaust kernel memory, causing denial of service","analyst_note":"Find the affected and fixed kernel version ranges from the NVD entry or the kernel stable git log for commit c52a9542ed7cfd527feb938bd0accada2ac8d267.","how_to_check":"- Check the running kernel version with `uname -r` and compare it to the fixed stable kernels listed in the NVD entry\n- Check whether the amdgpu driver is loaded with `lsmod | grep amdgpu`","needs_analyst":true,"not_affected_if":["no-amd-gpu","amdgpu-not-loaded"],"who_is_affected":"Systems running a Linux kernel with the amdgpu DRM driver that handle GPU command submissions with userptr buffers, such as workstations and servers with AMD GPUs. Systems without AMD GPUs or without the amdgpu driver loaded are unlikely to be affected. The sources do not say which kernel versions are affected.","user_interaction":"unknown","needs_special_setup":"unknown","severity_if_unknown":"low"},"cost_usd":0.000676,"input_tokens":3685,"output_tokens":615,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2026':11A,14A '-99106':12A,15A '8':174C 'alloc':47B,84C 'alreadi':228C 'amd':17B,28B 'amd-gpu':16B 'amdgpu':2A,80C,108C,116C,126C,130C,134C,143C,151C,156C,209C,225C 'array':173C 'bo':94C,157C,181C,184C 'bos':79C,83C,111C 'buffer':55B 'byte':175C 'c52a9542ed7cfd527feb938bd0accada2ac8d267':245C 'check':119C 'cherri':241C 'command':7A,30B 'commit':244C 'cs':75C,81C,109C,117C,127C,131C,135C,144C,152C,165C,197C,210C,226C 'cve':10A,13A 'driver':3A 'drm/amdgpu':68C 'drop':229C 'e':161C 'e.g':200C 'earli':140C 'entri':91C 'error':222C 'everi':89C 'fail':9A,32B,49B,76C,113C,146C,207C 'fini':154C 'follow':63C 'free':41B,69C,148C,159C,217C,233C 'freed':106C 'gpu':18B,29B 'handl':133C 'hmm':43B,86C,171C 'hold':188C 'host':25B 'ib':190C,212C 'infrastructur':19B 'job':129C 'kernel':22B,38B,61C 'leak':4A,51B,167C 'linux':1A,21B,60C 'linux-kernel':20B 'list':95C,158C 'lock':124C 'look':97C 'lookup':36B 'memori':5A,52B 'neither':150C 'no-op':238C 'noth':147C 'notifi':123C 'null':231C 'object':56B 'op':240C 'page':35B,101C,177C 'parser':78C,82C,110C,153C 'part':141C 'patch':128C,195C,211C 'path':216C,223C 'per':176C 'pfns':172C 'pick':242C 'place':199C 'rang':44B,72C,87C,103C,162C,169C,187C,219C,224C 'refer':57B,185C 'resolv':67C 'ring':137C,193C 'self':24B 'self-host':23B 'start':206C 'structur':45B 'submiss':8A,31B,50B 'submit':118C,145C,227C 'sync':136C 'take':214C 'touch':160C 'unmap':204C 'user':34B,100C 'userptr':71C,90C,180C 'va':205C 'vcn':201C 'vm':132C 'vulner':64C","nicknames":[],"mitigations":[],"who_affected":"Systems running a Linux kernel with the amdgpu DRM driver that handle GPU command submissions with userptr buffers, such as workstations and servers with AMD GPUs. Systems without AMD GPUs or without the amdgpu driver loaded are unlikely to be affected. The sources do not say which kernel versions are affected.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-28T11:17:29+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-99106","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-99106","severity":null,"published_at":"2026-10-28T11:17:29+00:00","modified_at":"2026-10-28T11:17:29+00:00","first_seen_at":"2026-10-28T11:32:34+00:00","fetched_at":"2026-10-28T11:32:34+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}