β¬’ DragonFlyBSD Kernel Audit
← triage Β· dashboard
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)

No comments yet.

PoC verification

Evidence pack

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

Fix verification

not_testable
baseline 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)