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

twa_bus_scan_cb frees the scan ccb with the wrong malloc type and leaks its timeout_ch callout on every bus scan

Summary

kfree(ccb, M_TEMP) vs xpt_alloc_ccb's M_CAMXPT allocation plus the separate timeout_ch callout that xpt_free_ccb would free - one callout leaked per scan and malloc accounting corrupted. Scans run at attach and after EVERY controller reset (the watchdog reset loop leaks unboundedly on flaky hardware). xpt_free_ccb fix.

Discussion (0)

No comments yet.

PoC verification

Evidence pack

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

Fix verification

not_testable
baseline no→ patch + rebuild →patched clean

not_testable: no 3ware hardware on guest

fix in finding markdown
per-fix-DF-4655

Confirmed kernel references

Detail

Exploit chain

[]

Evidence (decisive lines)

kfree(ccb, M_TEMP) vs xpt_alloc_ccb's M_CAMXPT + separate timeout_ch alloc that xpt_free_ccb frees. Bus scans run at attach and after EVERY controller reset - a flaky controller under the watchdog loop leaks unboundedly. xpt_free_ccb fix.

Verdict

not_run: needs 3ware 9xxx hardware (resets trigger rescans); defect certain by inspection vs cam_xpt alloc/free pairing