⬢ DragonFlyBSD Kernel Audit
DF-3787 / verdict.json
← back to finding ↓ download raw
{
  "finding_id": "DF-3787",
  "status": "inconclusive",
  "reproduced": 0,
  "impact": "none",
  "confidence": "certain",
  "verdict": "INCONCLUSIVE at runtime (needs real capture interrupts; no Bt848 hardware on this guest). Source-certain: no PHOLD/PRELE pairing, no close-path reset, ksignal() consumer confirmed at bktr_core.c:798-801.",
  "exploit_chain": "parent opens /dev/bktr0 + METEORCAPTUR continuous -> forked child (shares fd) issues METEORSSIGNAL(SIGUSR1) -> child exits + reaped (proc freed) -> next frame interrupt ksignal()s freed proc -> UAF token/siglist writes.",
  "evidence": "poc_stale_proc.c (compiles on guest vs /usr/src headers; open() fails ENXIO: no device). Code citations in VERDICT.md.",
  "kernel_refs": [
    "sys/dev/video/bktr/bktr_core.c:1485",
    "sys/dev/video/bktr/bktr_core.c:1495",
    "sys/dev/video/bktr/bktr_core.c:798",
    "sys/dev/video/bktr/bktr_core.c:1012",
    "sys/kern/kern_sig.c:1118"
  ],
  "poc_changes": "none",
  "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": 60,
  "guest_dirty": 0,
  "build_cmd": "cc -O -I/usr/src/sys -o poc poc_stale_proc.c",
  "run_cmd": "./poc",
  "code_hash": "4a13998aefde46c14e16179f6440151e8700c90a3153aed18e52f16bd18719de",
  "notes": "fd-sharing trigger removes the race; even zombie-window variants exist.",
  "recommended_fix": "PHOLD/PRELE around bktr->proc and clear it in video_close (fix.diff)",
  "fix_status": "not_testable",
  "fix_baseline_reproduced": 0,
  "fix_patched_reproduced": 0,
  "fix_verdict": "Runtime fix validation impossible on this guest (no Bt848/878 hardware, driver not in GENERIC, no module dir). fix.diff applies cleanly to sys/ and the patched bktr KLD module compiles with -Werror on the guests /usr/src (fix_build.log).",
  "fix_evidence": "fix.diff; fix_build.log (all-8-fixes module build, MAKE_RC=0)"
}