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

aac(4) MSI tunable registered under mfi(4)'s name (hw.mfi.msi.enable) and NOMSI attach path permanently mutates the shared boot global

Summary

TUNABLE_INT name copy-pasted from mfi(4): the natural hw.aac.msi.enable knob does not exist, boot settings intended for mfi silently apply to aac adapters, and a NOMSI card's attach permanently zeroes the global forcing later MSI-capable aac cards to INTx. Upstream uses a per-driver name. Operational misconfiguration only. Rename + per-device-decision fix.

Discussion (0)

No comments yet.

PoC verification

Evidence pack

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

Fix verification

not_testable
per-fix-DF-4851

Confirmed kernel references

Detail

Exploit chain

set hw.mfi.msi.enable=0 for an mfi issue -> every aac card also INTx; or NOMSI 2230S attaches before a 5405 -> 5405 gets INTx despite default=1

Evidence (decisive lines)

findings/poc/DF-4851/ (this verdict)

Verdict

Operational misconfiguration only (no memory-safety impact): aac's MSI tunable is registered under mfi(4)'s exact name (hw.mfi.msi.enable, copy-pasted from mfi_pci.c:107-108) - the natural hw.aac.msi.enable knob does not exist, boot-time settings intended for mfi silently apply to every aac adapter, and the NOMSI attach path permanently writes aac_msi_enable=0 so later MSI-capable aac cards are forced to INTx. Upstream FreeBSD uses a per-driver name. No aac hardware on the guest. Rename-the-tunable + per-device-decision fix.