IPV6_FW_GET leaks one unused mbuf per call + walks chain without lock
Summary
IPV6_FW_GET(:1101-1116): walks ip6_fw_chain NO crit NO lock while other CPU may mutate (same UAF surface as DF-0513). Loop body unconditionally m_get(M_WAITOK) for next entry(:1109) before checking chain end. When loop terminates after last real rule, trailing empty mbuf allocated+threaded onto returned chain, never consumed. One mbuf leaked per GET. Fix: alloc next at top of iteration after checking le_next!=NULL.
Discussion (0)
PoC verification
Evidence pack
findings/poc/DF-0517 Β· 1 files| File | Type | Description | Size | |
|---|---|---|---|---|
| manifest.json | file | 389 B | view raw |
Fix verification
not_testablerecommended fix identified; fix.diff not authored/validated in this batch
recommended fix identified; fix.diff not authored/validated in this batch
Confirmed kernel references
β
Detail
Exploit chain
none (Info severity)
Evidence (decisive lines)
Source-confirmed at sys/net/ip6fw/ip6_fw.c:1101: IPV6_FW_GET leaks one unused mbuf per call + walks chain without lock
Verified recommended fix
Source-confirmed at sys/net/ip6fw/ip6_fw.c:1101: IPV6_FW_GET leaks one unused mbuf per call + walks chain without lock
Verdict
Source-confirmed at sys/net/ip6fw/ip6_fw.c:1101: IPV6_FW_GET leaks one unused mbuf per call + walks chain without lock
No comments yet.