DF-4575
adw_idle_cmd_send: single RISC command mailbox shared across sim-lock, callout and lock-free ISR contexts without serialization β raced status word panics the kernel (or BDRs the wrong target); any chip wedge during timeout recovery ends in an unconditional panic after a 10-second interrupts-disabled spin
Summary
One shared LRAM mailbox (clear-STATUS/write-CMD/poll-STATUS) with no mutual exclusion across three caller domains: XPT_RESET under sim_mplock, adwtimeout under crit-only callouts (crit does not exclude other CPUs' sim-lock holders), and the lock-free ISR. A raced zeroing of IDLE_CMD_STATUS leaves the peer polling forever - 10s interrupts-disabled spin then panic; a torn PARAM/CMD interleave can device-reset the wrong target; even solo, a wedged chip during timeout recovery panics. Unpriv userspace drives it via queue saturation to a stalled target + concurrent resets. Hardware-gated. idle_lock + error-return fix.
Discussion (0)
PoC verification
Evidence pack
findings/poc/DF-4575 Β· 1 files| File | Type | Description | Size | |
|---|---|---|---|---|
| verdict.json | file | 1.1 KB | view raw |
Fix verification
not_testablebaseline noβ patch + rebuild βpatched clean
not_testable: hardware absent from guest
fix in finding markdown
per-fix-DF-4575
Confirmed kernel references
Detail
Exploit chain
[]
Evidence (decisive lines)
One RISC idle-command mailbox shared across sim-lock, crit-only callout, and lock-free ISR callers with no serialization; unpriv userspace drives it via queue saturation to a stalled target + concurrent resets. idle_lock + error-return-instead-of-panic fix.
Verdict
not_run: requires adw(4) HBA + stalled/malicious SCSI target
No comments yet.