# DF-2988 PoC evidence pack

## What
RB_SCAN concurrency contract overstates the machinery: deleting another concurrent scans current element is a UAF.

## Build
```
make (KMOD dfv_safe)
```

## Run
```
kldload dfv_safe.ko; sysctl -w dfv.rb2988=1; dmesg | grep DF2988
```

## Expected
scanner parked on current element; other thread RB_REMOVE+kfree; scanner re-reads freed node (marker observed in one run)

Guest: DragonFly dfbsd 6.5-DEVELOPMENT DragonFly 6.5-DEVELOPMENT #0: Thu Jul  2 06:02:04 UTC 2026     root@dfbsd:/usr/obj/usr/src/sys/X86_64_GENERIC  x86_64
All logs are full untrimmed captures unless noted. fix.diff is the
git-apply-able verified fix (authored after verification; never applied
to the audit tree).
