DF-4685 / manifest.json
{ "finding_id": "DF-4685", "verdict": "reproduced", "impact": "panic", "title": "amdgpu_fence_slab_fini: rcu_barrier() is a no-op — kldunload with pending call_rcu entries unmaps module text before the >=1s delay line fires amdgpu_fence_free → fatal trap (root-triggered local DoS)", "reproduce": { "build": "cd /root/poc/DF-4684 && make -m /usr/share/mk KMODDIR=$PWD # df4684.ko (stock headers)", "run": "kldload drm && kldload ./df4684.ko && sysctl kern.df4684_run=2 && kldunload df4684; sleep 4", "expected": "kldunload completes; ~1s later: Fatal trap 12 page fault at the armed callback address (unmapped module text); guest drops to db> (panic.txt)" }, "kernel_refs": [ "sys/dev/drm/amd/amdgpu/amdgpu_fence.c:69-73", "sys/dev/drm/amd/amdgpu/amdgpu_fence.c:646-649", "sys/dev/drm/include/linux/rcutree.h:30", "sys/dev/drm/linux_rcu.c:56-78,80-110" ], "artifacts": [ "README.md", "VERDICT.md", "run.sh", "panic.txt", "run.fixed.log", "fix.diff", "manifest.json", "verdict.json" ] } |