DF-5404
sgread(): unlocked re-check of rdwr->state races another reader's remove+free β 4-byte use-after-free read and tsleep on a freed object (PINTERLOCKED pattern)
Summary
The lost-wakeup interlock pattern re-reads rdwr->state AFTER cam_periph_unlock: a second reader can remove+free the entry (window widened by two uiomoves with page faults) - the first reader then reads freed M_DEVBUF memory and possibly tsleeps on the freed address. UAF-read-driven control flow, no write primitive. Never-deref-after-unlock + claimed-flag fix.
Discussion (0)
PoC verification
Evidence pack
findings/poc/DF-5404 Β· 1 files| File | Type | Description | Size | |
|---|---|---|---|---|
| verdict.json | file | 896 B | view raw |
Fix verification
not_testablebaseline noβ patch + rebuild βpatched clean
per-fix-DF-5404
Confirmed kernel references
Detail
Evidence (decisive lines)
static trace in finding markdown
Verified recommended fix
see finding markdown
Verdict
untested (Low race window / Info uninit-read; static trace)
No comments yet.