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)
PoC verification
Evidence pack
findings/poc/DF-4629 Β· 1 files| File | Type | Description | Size | |
|---|---|---|---|---|
| verdict.json | file | 1.1 KB | view raw |
Fix verification
not_testablebaseline 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)
No comments yet.