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)
PoC verification
Evidence pack
findings/poc/DF-4979 Β· 1 files| File | Type | Description | Size | |
|---|---|---|---|---|
| verdict.json | file | 931 B | view raw |
Fix verification
not_testableConfirmed 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).
No comments yet.