{
  "finding_id": "DF-3861",
  "status": "not_reproduced",
  "reproduced": 0,
  "impact": "none",
  "confidence": "certain",
  "verdict": "Source-certain teardown omission: amdgpu_device_init registers the visible-VRAM aperture via vm_phys_fictitious_reg_range (amdgpu_device.c:2648-2658) but amdgpu_device_fini only clears adev->fictitious_range_registered (amdgpu_device.c:2751-2753) without ever calling vm_phys_fictitious_unreg_range (no call exists anywhere in sys/dev/drm/amd/; radeon does it correctly at radeon_device.c:1565-1567). Under the DFly shim (drm_vm.c:144: 8 static slots, no dedup) each attach leaks page_count*sizeof(vm_page) kernel bytes and consumes a slot; the 9th registration of ANY DRM driver returns EBUSY (drm_vm.c:200-203), which amdgpu_device_init treats as fatal. Trigger needs root (module reload) or re-probe events -> Low severity, guaranteed leak. Guest has no AMD GPU (env.txt): registration path never runs, not reproducible here. Note: during env probing, kldunload of the (deviceless) amdgpu module wedged the guest hard enough to require a snapshot reset - consistent with this teardown path being undertested.",
  "exploit_chain": "",
  "evidence": "VERDICT.md (registration/unregistration asymmetry with exact line refs); run.log+env.txt (guest hardware gate); fix.diff mirrors radeon teardown",
  "kernel_refs": ["sys/dev/drm/amd/amdgpu/amdgpu_device.c:2648", "sys/dev/drm/amd/amdgpu/amdgpu_device.c:2751", "sys/dev/drm/drm_vm.c:173", "sys/dev/drm/drm_vm.c:203", "sys/dev/drm/radeon/radeon_device.c:1565"],
  "poc_changes": "authored from scratch",
  "attempts": 1,
  "guest_uname": "DragonFly dfbsd 6.5-DEVELOPMENT #0: Thu Jul 2 06:02:54 UTC 2026 root@dfbsd:/usr/obj/usr/src/sys/X86_64_GENERIC x86_64",
  "runtime_sec": 5,
  "guest_dirty": 0,
  "build_cmd": "./build.sh",
  "run_cmd": "./run.sh",
  "code_hash": "8c0ad484a55fe231e578383f0fb393e2bfc2b67dc5a905e8942d2fa79b270f6e",
  "notes": "Guest reset with-src after probing (kldunload amdgpu wedged ssh); guest confirmed clean afterwards.",
  "recommended_fix": "In amdgpu_device_fini, if (adev->fictitious_range_registered) vm_phys_fictitious_unreg_range(aper_base, aper_base+visible_vram_size) and clear the flag - mirroring radeon_device_fini",
  "fix_status": "not_testable",
  "fix_baseline_reproduced": 0,
  "fix_patched_reproduced": 0,
  "fix_verdict": "fix.diff adds the guarded vm_phys_fictitious_unreg_range call in amdgpu_device_fini; git apply --check clean; not exercisable without AMD hardware",
  "fix_evidence": "findings/poc/DF-3861/fix.diff"
}
