β¬’ DragonFlyBSD Kernel Audit
← triage Β· dashboard
DF-5494

uether_ifdetach() never drains ue->ue_rxq β€” mbufs enqueued by a final RX callback that exits without flushing leak with the freed softc (live path: cdce bulk-read tr_stall skips uether_rxflush)

Summary

RX frames park on ue_rxq and deliver only on a later uether_rxflush; detach drains taskqueue/callout/miibus/sysctl but NEVER the rxq - cdce's tr_stall path (m_getcl failure or unplug between enqueue and flush) leaves frames parked when the softc is freed: repeated plug/stall/unplug cycles leak mbuf clusters (slow exhaustion DoS). IF_DRAIN-in-detach fix.

Discussion (0)

No comments yet.

PoC verification

Evidence pack

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

Fix verification

not_testable
baseline no→ patch + rebuild →patched clean
per-fix-DF-5494

Confirmed kernel references

Detail

Evidence (decisive lines)

static trace + live cdce tr_stall path citation

Verified recommended fix

see finding markdown

Verdict

untested (Low leak scenario / Info API hardening; the DF-5396 instance is separately filed)