β¬’ DragonFlyBSD Kernel Audit
← triage Β· dashboard
DF-4629

mpt_user: DMA page buffer freed on ioctl timeout while the deliberately-abandoned request still points at it β€” late IOC completion DMAs into freed kernel heap

Summary

All four SGE ioctls deliberately abandon timeout requests as still chip-owned and the reply handler explicitly frees late-completing requests - yet mpt_ioctl unconditionally frees the page buffer while the abandoned request's SGE still addresses it. A late completion with an IOC-to-host data phase DMAs up to len bytes into freed reallocatable heap. Operator-group trigger; hardware-timing window. Attach-ownership-to-the-request fix.

Discussion (0)

No comments yet.

PoC verification

Evidence pack

findings/poc/DF-4629 Β· 1 files
FileTypeDescriptionSize
verdict.json file 1.1 KB view raw

Fix verification

not_testable
baseline no→ patch + rebuild →patched clean

not_testable: hardware-gated (no Intel DSI panel / no mpt HBA on guest)

fix in finding markdown
per-fix-DF-4629

Confirmed kernel references

Detail

Exploit chain

[]

Evidence (decisive lines)

Timeout paths deliberately abandon requests whose SGE still targets mpt_page->paddr, yet mpt_ioctl unconditionally frees the DMA buffer at :755. Attach-buffer-ownership-to-the-request fix.

Verdict

not_run: no /dev/mpt* on guest (virtio-only); lifetime flaw code-certain (the driver's own late-completion handler proves late DMA is expected)