⬢ DragonFlyBSD Kernel Audit
DF-4243 / verdict.json
← back to finding ↓ download raw
{
  "finding_id": "DF-4243",
  "status": "untested",
  "reproduced": 0,
  "impact": "none demonstrated on guest (no DPT hardware); source-level impact: stale armed callout after send failure \u2192 premature abort of unrelated command / UAF-read on recycled ccb",
  "confidence": "certain",
  "verdict": "Untested on guest (hardware-gated). Source-certain: dpt_scsi.c:778 arms the timeout, the failure path 780-788 frees dccb+ccb without callout_stop (the normal path stops it at 1572). Later dpttimeout() runs on stale pointers (1683-1707): UAF read via xpt_print_path or premature EATA_SPECIFIC_ABORT of a re-dispatched command.",
  "exploit_chain": "",
  "evidence": "VERDICT.md; dpt_scsi.c:778-788 vs 1572; dpttimeout 1676-1711",
  "kernel_refs": [
    "sys/dev/raid/dpt/dpt_scsi.c:778",
    "sys/dev/raid/dpt/dpt_scsi.c:780",
    "sys/dev/raid/dpt/dpt_scsi.c:786",
    "sys/dev/raid/dpt/dpt_scsi.c:1572",
    "sys/dev/raid/dpt/dpt_scsi.c:1698",
    "sys/dev/raid/dpt/dpt_scsi.c:1707"
  ],
  "poc_changes": "No seed PoC existed; evidence authored from scratch in this run.",
  "attempts": 1,
  "guest_uname": "DragonFly dfbsd 6.5-DEVELOPMENT DragonFly 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": 10,
  "guest_dirty": 0,
  "build_cmd": null,
  "run_cmd": null,
  "code_hash": null,
  "notes": "Timeout/abort lifecycle family (prompt item c). Low severity: needs a wedged HBA to arm.",
  "recommended_fix": "callout_stop(ccb->ccb_h.timeout_ch) in the send-failure path before dptfreeccb/xpt_done (fix.diff).",
  "fix_status": "not_testable",
  "fix_baseline_reproduced": 0,
  "fix_patched_reproduced": 0,
  "fix_verdict": "fix.diff authored against the read-only sys/ tree; kernel-level fix validation impossible without DPT SmartRAID hardware (none in guest, no QEMU emulation exists).",
  "fix_evidence": "fix.diff"
}