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)
PoC verification
Evidence pack
findings/poc/DF-3798 Β· 1 files| File | Type | Description | Size | |
|---|---|---|---|---|
| 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).
No comments yet.