⬢ DragonFlyBSD Kernel Audit
DF-4364 / manifest.json
← back to finding ↓ download raw
{
  "finding_id": "DF-4364",
  "file": "sys/dev/raid/mps/mps_config.c",
  "title": "mps_config getters free the mps_command while the IOC still owns it after mps_request_polled timeout - late completion UAF / cross-request completion confusion",
  "verdict": "reproduced",
  "impact": "panic",
  "reproduce": {
    "build": "cc -O2 -Wall -o harness harness.c",
    "run": "./harness",
    "expected": "2/2 scenarios print !! invariant violations (cross-request completion with stale CONFIG reply, foreign cm_reply fields on a BUSY SCSI IO command, foreign reply-slot free; stale fields + double-booked reply slot on a FREE cm) and exit 1; ./harness_fixed (fix.diff model) prints invariants hold and exits 0"
  },
  "kernel_refs": [
    "sys/dev/raid/mps/mps.c:2140",
    "sys/dev/raid/mps/mps_config.c:167",
    "sys/dev/raid/mps/mpsvar.h:514",
    "sys/dev/raid/mps/mps.c:1581",
    "sys/dev/raid/mps/mps.c:1405",
    "sys/dev/raid/mpr/mpr.c:3557"
  ],
  "artifacts": [
    "harness.c", "build.sh", "run.sh", "run.log", "env.txt", "fix.diff",
    "README.md", "VERDICT.md", "manifest.json", "verdict.json"
  ]
}