DF-3804 / verdict.json
{ "finding_id": "DF-3804", "status": "not_reproduced", "reproduced": 0, "impact": "none", "confidence": "certain", "verdict": "mprsas_check_eedps read-capacity allocation-failure path (mpr_sas.c:3684-3692) calls xpt_free_path(ccb->ccb_h.path) where ccb->ccb_h.path is NULL (xpt_alloc_ccb zeroes the ccb and no path was assigned yet); xpt_free_path(NULL) -> xpt_release_path(NULL) derefs path->device (sys/bus/cam/cam_xpt.c:4047) -> deterministic kernel panic under memory pressure during EEDP probing, plus local_path (created at mpr_sas.c:3643) leaks. Not reproduced on guest: no SAS3 HBA, function unreachable at runtime; provable from source.", "exploit_chain": "", "evidence": "VERDICT.md, env.txt, fix.diff", "kernel_refs": [ "sys/dev/raid/mpr/mpr_sas.c:3689", "sys/dev/raid/mpr/mpr_sas.c:3643", "sys/bus/cam/cam_xpt.c:4047" ], "poc_changes": "n/a \u2014 hardware-gated", "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": 15, "guest_dirty": 0, "build_cmd": "n/a", "run_cmd": "sh findings/poc/DF-3804/run.sh", "code_hash": "", "notes": "Same defect exists in upstream FreeBSD mpr(4).", "recommended_fix": "Free local_path instead of the NULL ccb->ccb_h.path in the rcap_buf allocation-failure branch.", "fix_status": "not_testable", "fix_baseline_reproduced": 0, "fix_patched_reproduced": 0, "fix_verdict": "fix.diff corrects the freed pointer; not exercisable on this guest.", "fix_evidence": "findings/poc/DF-3804/fix.diff" } |