DF-4604 / manifest.json
{ "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" ] } |