⬢ DragonFlyBSD Kernel Audit
DF-5286 / verdict.json
← back to finding ↓ download raw
{
  "finding_id": "DF-5286",
  "status": "untested",
  "reproduced": 0,
  "impact": "none",
  "confidence": "certain",
  "verdict": "Not executed (Low-severity hardening finding; Phase V skipped per contract). Static proof: samount() kmallocs the 8192-byte READ BLOCK LIMITS scratch without M_ZERO (scsi_sa.c:1961) and parses gran/maximum/minimum from it (scsi_sa.c:2007-2019) with no short-transfer check - a device that completes RBL with a short transfer leaves blk_gran/max_blk/min_blk derived from stale kernel heap. Consequence is state-only (RBL_GRAN is masked to 5 bits; max/min only gate request sizes in sastrategy and feed the DF-5285 modulo), with no copyout of the bytes, hence Low. The M_ZERO hunk is included in the DF-5285 fix.diff and was compile-validated with that kernel build.",
  "exploit_chain": "",
  "evidence": "scsi_sa.c:1961,1988-1994,2007-2019 (cited in finding); fix.diff hunk 2; evilsa.c rbl_short choreography available if triage wants a live run",
  "kernel_refs": [
    "sys/bus/cam/scsi/scsi_sa.c:1961",
    "sys/bus/cam/scsi/scsi_sa.c:1988",
    "sys/bus/cam/scsi/scsi_sa.c:2007",
    "sys/bus/cam/scsi/scsi_sa.c:2019"
  ],
  "poc_changes": "evilsa.c carries a ready rbl_short=1 mode (zero-length RBL transfer); not run",
  "attempts": 0,
  "guest_uname": "",
  "runtime_sec": 0,
  "guest_dirty": 0,
  "build_cmd": "",
  "run_cmd": "",
  "code_hash": "evilsa.c: 968557745b0f060df9477a1280e6b4db9a7dbc0e807c5921babe83937a457d06",
  "notes": "Low severity hardening; same class as DF-5284 (non-zeroed kmalloc + short transfer) but no exfiltration path - the stale bytes only steer softc geometry state.",
  "recommended_fix": "kmalloc rblim with M_ZERO (included in DF-5285 fix.diff hunk 2).",
  "fix_status": "not_tested",
  "fix_baseline_reproduced": 0,
  "fix_patched_reproduced": 0,
  "fix_verdict": "M_ZERO hunk compiled as part of the DF-5285 fix kernel build (fix_build.log) but the short-RBL scenario itself was not executed",
  "fix_evidence": "findings/poc/DF-5285/fix_build.log"
}