DF-3803 / verdict.json
{ "finding_id": "DF-3803", "status": "not_reproduced", "reproduced": 0, "impact": "none", "confidence": "certain", "verdict": "mprsas_prepare_for_tm (mpr_sas.c:3787-3813) overwrites tm->cm_ccb with a freshly allocated ccb+path on every call; the TM error-recovery state machine calls it repeatedly on the same tm (re-abort at mpr_sas.c:1584->1643, LUN-reset escalation at 1594->1476, target-reset escalation at 1365->1487), leaking one union ccb + cam_path per reuse; mprsas_free_tm frees only the final one. Unbounded leak under device error storms. Not reproduced: no SAS3 HBA on the guest; provable from source.", "exploit_chain": "", "evidence": "VERDICT.md, env.txt, fix.diff", "kernel_refs": ["sys/dev/raid/mpr/mpr_sas.c:3801", "sys/dev/raid/mpr/mpr_sas.c:3808", "sys/dev/raid/mpr/mpr_sas.c:1584", "sys/dev/raid/mpr/mpr_sas.c:1594", "sys/dev/raid/mpr/mpr_sas.c:1365"], "poc_changes": "n/a — 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-3803/run.sh", "code_hash": "", "notes": "", "recommended_fix": "Free the previous tm->cm_ccb path+ccb at the top of mprsas_prepare_for_tm.", "fix_status": "not_testable", "fix_baseline_reproduced": 0, "fix_patched_reproduced": 0, "fix_verdict": "fix.diff authored; not exercisable on this guest.", "fix_evidence": "findings/poc/DF-3803/fix.diff" } |