Unbounded register busy-wait in re_reset() (MACFG_38/39/50-53) can hard-lock the kernel thread with the ifnet serializer held
Summary
For MACFG_38/39/50-53 the reset path spins 'while (!(CSR_READ_4(sc,RE_TXCFG) & BIT_11)) DELAY(100);' with no iteration bound, unlike the bounded 3000-iteration waits for the same bit in re_exit_oob. A wedged-but-present NIC leaves the calling thread spinning forever while holding ifp->if_serializer, hanging all subsequent ioctls on the interface. Requires faulty/errant hardware (reads of removed devices return 0xFFFFFFFF which exits the loop); no attacker-controllable input reaches the loop condition. Defense-in-depth: bound the loop like its siblings. Info hardening, Phase V skipped per contract.
Discussion (0)
PoC verification
Evidence pack
findings/poc/DF-3571 Β· 1 files| File | Type | Description | Size | |
|---|---|---|---|---|
| verdict.json | file | 525 B | view raw |
Confirmed kernel references
β
Detail
Evidence (decisive lines)
source citation re.c:7678 vs bounded siblings :3619/:3630
Verdict
Info hardening - requires a wedged-but-readable NIC; no attacker-controllable input reaches the loop condition. Phase V skipped per contract. Fix is a bounded-loop edit mirroring re_exit_oob's 3000-iteration waits.
No comments yet.