DF-4838 / manifest.json
{ "finding_id": "DF-4838", "file": "sys/dev/drm/amd/amdgpu/amdgpu_mn.c", "verdict": "untested", "impact": "none", "confidence": "certain", "description": "amdgpu MMU-notifier invalidation entirely absent on DragonFly: inert <linux/mmu_notifier.h> shim (no registration API, no VM hooks), amdgpu_mn.c excluded from the module build (and non-compilable as-is), CONFIG_MMU_NOTIFIER undefined so amdgpu_mn.h stubs return -ENODEV/NULL/no-op, and amdgpu_gem_userptr_ioctl hard-fails -EINVAL. Latent missed-invalidation DMA + stripped-kref p->mn UAF if ever enabled.", "reproduce": { "build": "sh findings/poc/DF-4838/static_check.sh", "run": "dfbsd-qemu/vm.sh run_root 'nm /boot/kernel/amdgpu.ko | grep -c amdgpu_mn; strings /boot/kernel/amdgpu.ko | grep amdgpu_gem_userptr_ioctl'", "expected": "0 amdgpu_mn symbols in the shipped module; 0 CONFIG_MMU_NOTIFIER defines; Makefile grep no match; stub string 'amdgpu_gem_userptr_ioctl: not implemented' present in the binary" }, "kernel_refs": [ "sys/dev/drm/include/linux/mmu_notifier.h:36-46", "sys/dev/drm/amd/amdgpu/amdgpu_mn.c:416", "sys/dev/drm/amd/amdgpu/amdgpu_mn.c:132", "sys/dev/drm/amd/amdgpu/amdgpu_mn.c:356-367", "sys/dev/drm/amd/amdgpu/amdgpu_mn.c:72-90", "sys/dev/drm/amd/amdgpu/amdgpu_mn.c:397-399", "sys/dev/drm/amd/amdgpu/amdgpu_mn.h:37-57", "sys/dev/drm/amd/amdgpu/amdgpu_gem.c:285-290", "sys/dev/drm/amd/amdgpu/amdgpu_cs.c:605", "sys/dev/drm/amd/amdgpu/amdgpu_cs.c:1222", "sys/dev/drm/radeon/Makefile:105-107" ], "artifacts": [ "README.md", "VERDICT.md", "static_check.sh", "run.log", "fix.diff", "verdict.json", "manifest.json" ] } |