DF-4243 / verdict.json
{ "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" } |