{
  "finding_id": "DF-4604",
  "title": "radeon_gem_va_ioctl: bo_va use-after-free - radeon_vm_bo_set_addr() drops the BO reservation internally and radeon_gem_va_update_vm() then dereferences bo_va unprotected while a racing GEM_CLOSE on the same DRM fd frees it via radeon_vm_bo_rmv()->kfree()",
  "verdict": "inconclusive (guest has no radeon GPU; race proven by code trace, runtime confirmation requires physical Cayman+ hardware)",
  "impact": "none (on this guest); real-hw impact: kernel UAF/type-confusion, panic-to-LPE",
  "reproduce": {
    "build": "./build.sh",
    "run": "./run.sh /dev/dri/card0 20000",
    "expected": "unpatched real hw: panic/UAF corruption in ttm_eu_reserve_buffers / radeon_vm_bo_update; audit guest: SKIP, rc=3"
  },
  "kernel_refs": [
    "sys/dev/drm/radeon/radeon_gem.c:671",
    "sys/dev/drm/radeon/radeon_gem.c:677",
    "sys/dev/drm/radeon/radeon_gem.c:693",
    "sys/dev/drm/radeon/radeon_gem.c:696",
    "sys/dev/drm/radeon/radeon_gem.c:701-702",
    "sys/dev/drm/radeon/radeon_gem.c:565",
    "sys/dev/drm/radeon/radeon_gem.c:569",
    "sys/dev/drm/radeon/radeon_gem.c:585",
    "sys/dev/drm/radeon/radeon_gem.c:590-591",
    "sys/dev/drm/radeon/radeon_gem.c:193-205",
    "sys/dev/drm/radeon/radeon_vm.c:538",
    "sys/dev/drm/radeon/radeon_vm.c:581",
    "sys/dev/drm/radeon/radeon_vm.c:1119-1142",
    "sys/dev/drm/radeon/radeon_vm.c:1048-1072",
    "sys/dev/drm/drm_gem.c:309-315",
    "sys/dev/drm/drm_gem.c:336-365"
  ],
  "artifacts": [
    "README.md", "VERDICT.md", "radeon_va_uaf.c", "build.sh", "run.sh",
    "build.log", "run.log", "env.txt", "fix.diff", "manifest.json", "verdict.json"
  ]
}
