DF-4927 / manifest.json
{ "finding_id": "DF-4927", "title": "radeon_sa_bo_next_hole dangling fence pointers -> UAF + double free in radeon_sa_bo_new (missing upstream 0381ac3ca2e7 fix)", "verdict": "inconclusive_kernel__logic_reproduced", "impact_assessed": "kernel heap UAF/double-free, unprivileged DRI client on radeon HW (High)", "impact_observed_on_guest": "none (guest has no radeon GPU; kernel path not exercisable)", "reproduce": { "build": "sh build.sh (cc -O2 -> rsa_base; cc -O2 -DFIXED -> rsa_fixed)", "run": "sh run.sh", "expected": "rsa_base exits 42 printing UAF-REF/UAF-WAIT/DOUBLE-FREE at sa.c:352/356/358; rsa_fixed exits 0 with zero events" }, "kernel_refs": [ "sys/dev/drm/radeon/radeon_sa.c:278", "sys/dev/drm/radeon/radeon_sa.c:270-272", "sys/dev/drm/radeon/radeon_sa.c:335-338", "sys/dev/drm/radeon/radeon_sa.c:150", "sys/dev/drm/radeon/radeon_sa.c:166", "sys/dev/drm/radeon/radeon_sa.c:306", "sys/dev/drm/radeon/radeon_sa.c:352-353", "sys/dev/drm/radeon/radeon_sa.c:356", "sys/dev/drm/radeon/radeon_sa.c:357-358", "sys/dev/drm/radeon/radeon_fence.c:699-715", "sys/dev/drm/radeon/radeon_fence.c:1114-1120", "sys/dev/drm/linux_fence.c:43-51", "sys/dev/drm/include/linux/dma-fence.h:90-110", "sys/dev/drm/radeon/radeon_ib.c:95-98" ], "upstream_refs": [ "Linux 0381ac3ca2e7 drm/radeon: Initialize fences array entries in radeon_sa_bo_next_hole", "Linux 6a15f3ff19a8 drm/amdgpu: Initialize fences array entries in amdgpu_sa_bo_next_hole", "Linux f6ff4f67cdf8 drm/radeon: hold reference to fences in radeon_sa_bo_new (present in DF)" ], "artifacts": [ "radeon_sa_uaf.c", "build.sh", "run.sh", "build.log", "run.log", "run.2.log", "run.3.log", "env.txt", "fix.diff", "VERDICT.md", "README.md", "manifest.json", "verdict.json" ] } |