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

isp_pci_mbxdma allocations are never torn down: error paths leak the master DMA tag, and a successful attach->detach leaks pcmd_pool, xflist, tgtlist, control queues, per-channel FC scratch, per-cmd maps and all DMA tags

Summary

isp_pci_mbxdma creates the master tag and allocates pcmd_pool, xflist/tgtlist, control-space tag+memory, per-channel FC scratch, and per-cmd dma maps. Every failure path after the master-tag creation returns without bus_dma_tag_destroy, and on the success path NOTHING frees any of it: isp_uninit only resets the chip, isp_detach frees only CAM resources, isp_pci_detach frees only isp_param and pc.ptr - so a module unload (or hot-unplug) of a working adapter permanently leaks the queues, pools, scratch, maps and both DMA tags (hundreds of KB per cycle). Teardown-mirror fix.

Discussion (0)

No comments yet.

PoC verification

Evidence pack

findings/poc/DF-4177 Β· 2 files
FileTypeDescriptionSize
README.md file 141 B ↓ raw
verdict.json file 777 B view raw
README.md file
↓ download raw

DF-4177

Hardware-gated finding - PoC skipped per contract. Source citations in the pass-2 result block.

Fix: see pass-2 result block fix

Fix verification

not_testable
baseline no→ patch + rebuild →patched clean

see pass-2 result block fix

source-only
per-fix-DF-4177

Confirmed kernel references

Detail

Exploit chain

[]

Evidence (decisive lines)

source-only; full path:line trace in pass-2 result block

Verdict

source-verified; hardware-gated (no iir controller / no Qlogic HBA on audit guest)