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

SSIF READ_START retry loop retries ENXIO/EBUSY forever β€” unbounded kthread livelock DoS via stuck/malicious BMC (distinct site from DF-2026)

Summary

goto read_start retries ENXIO/EBUSY with no cap (a different loop from DF-2026's for(;;)) - a stuck BMC wedges the kthread inside one request, all IPMI ioctls block forever and the watchdog callout stops. Bounded-retry fix.

Discussion (0)

No comments yet.

PoC verification

Evidence pack

findings/poc/DF-4979 Β· 1 files
FileTypeDescriptionSize
verdict.json file 931 B view raw

Fix verification

not_testable
per-fix-DF-4979

Confirmed kernel references

Detail

Exploit chain

BMC at the SSIF address answers READ_START with persistent EBUSY -> goto read_start loop never exits -> IPMI subsystem stall + watchdog neglect

Evidence (decisive lines)

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

Verdict

Distinct unbounded loop from DF-2026 (verified not fixed by a DF-2026 cap): on ENXIO/EBUSY from the first SMBus block read the code releases the bus, sleeps 10ms, and 'goto read_start' retries forever - a stuck/malicious BMC (or SMBus controller fault) wedges the ssif kthread inside one request: queued+future IPMI ioctls block forever and the watchdog callout stops being serviced. Bounded-retry fix (~1s cap).