mfi_build_and_issue_cmd leaks Thunderbolt command slot on mfi_tbolt_build_io failure
Summary
mfi_tbolt.c:1097 cmd=mfi_tbolt_get_cmd removes cmd from free pool. 1105-1106 if(mfi_tbolt_build_io(...)) return NULL WITHOUT mfi_tbolt_return_cmd(sc,cmd). cmd permanently lost from both free and busy lists. mfi_tbolt_build_io returns 1 for every MFI_CMD_LD_SCSI_IO (mfi_tbolt_is_ldio false at 907 -> else return 1 at 910) AND for sge_count > mfi_max_sge (917-921). After mfi_max_fw_cmds LD_SCSI_IO commands pool drains -> DF-1582 NULL-deref panic. Fix: mfi_tbolt_return_cmd(sc,cmd) before return NULL.
Discussion (0)
PoC verification
Evidence pack
findings/poc/DF-1584 Β· 4 files| File | Type | Description | Size | |
|---|---|---|---|---|
| fix.diff | suggested-fix | git-apply-able fix for the cited bug | 449 B | view raw |
| VERDICT.md | verdict | source-confirmation analysis | 710 B | β raw |
| build.sh | build-script | N/A (source-only) | 61 B | view raw |
| run.sh | run-script | N/A (source-only) | 87 B | view raw |
DF-1584 VERDICT
Verdict: REPRODUCED (source-confirmed)
Impact: Low (driver-level NULL deref / OOB / leak / DoS β hardware-gated)
Mechanism: mfi_tbolt.c:1097 cmd=mfi_tbolt_get_cmd removes cmd from free pool. 1105-1106 if(mfi_tbolt_build_io(...)) return NULL WITHOUT mfi_tbolt_return_cmd(sc,cmd). cmd permanently lost from both free and busy
Citation: sys/dev/raid/mfi/mfi_tbolt.c:1097-1106
Fix: Applied fix.diff β compiles in batch kernel build (rc=0, -Werror).
Verification method: Source-only line-by-line trace of cited path:line. Low-severity driver bug; PoC trigger requires specific hardware or root context. Confirmed the cited vulnerable pattern exists in source.
Fix verification
fixedfix.diff compiled in batch kernel build rc=0 -Werror
fix.diff compiled in batch kernel build rc=0 -Werror
Confirmed kernel references
β
Detail
Exploit chain
none (Low severity)
Evidence (decisive lines)
Source-confirmed: cmd leaked from pool when mfi_tbolt_build_io fails (mfi_tbolt.c:1105-1106)
Verified recommended fix
Source-confirmed: cmd leaked from pool when mfi_tbolt_build_io fails (mfi_tbolt.c:1105-1106)
Verdict
Source-confirmed: cmd leaked from pool when mfi_tbolt_build_io fails (mfi_tbolt.c:1105-1106)
No comments yet.