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

ena_start_xmit leaks the dequeued mbuf when ena_xmit_mbuf returns ENA_COM_NO_MEM or ENA_COM_NO_SPACE

Summary

On TX failure the error branch either frees m_head (generic error) or does NOTHING for ENA_COM_NO_MEM/ENA_COM_NO_SPACE ('/* XXX put mbuf back on queue */' - the requeue was never implemented), then breaks out holding the dequeued mbuf: it is neither transmitted, requeued, nor freed. Local unprivileged user generating TX under kernel memory pressure leaks one mbuf (+clusters) per failed send - unbounded kernel memory exhaustion over time. Also fires under malicious-peer resource withholding. One-line fix (m_freem or ifq_requeue).

Discussion (0)

No comments yet.

PoC verification

Evidence pack

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

Confirmed kernel references

β€”

Detail

Evidence (decisive lines)

β€”

Verdict

Low - leak on ENA_COM_NO_MEM/NO_SPACE (requeue XXX never implemented). Not executable on the KVM guest (no ENA device).