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

Safety-critical checks rely on KASSERT/KKASSERT which are no-ops on production kernels without INVARIANTS

Summary

KASSERT/KKASSERT no-op without INVARIANTS (systm.h:117-119). Safety-critical guards in this file: KASSERT(m_len>=ETHER_HDR_LEN)(:993) prevents OOB ether_header read in ether_demux; KKASSERT(mtag!=NULL)(:1003) before m_tag_data NULL deref; KKASSERT(ether_type!=VLAN)(:1370) recursion guard; KKASSERT(M_HASH)(:1452) before hashcpu. Production kernels: all become no-ops. Buggy driver short mbuf or refcount race -> exploitable OOB/NULL-deref instead of controlled panic.

Discussion (0)

No comments yet.

PoC verification

Evidence pack

findings/poc/DF-0448 Β· 1 files
FileTypeDescriptionSize
manifest.json file 388 B view raw

Fix verification

not_testable
baseline reproduced→ patch + rebuild →patched clean

recommended fix identified; fix.diff not authored/validated in this batch

recommended fix identified; fix.diff not authored/validated in this batch
combined build rc=0

Confirmed kernel references

β€”

Detail

Exploit chain

none (Info severity)

Evidence (decisive lines)

Source-confirmed at sys/net/if_ethersubr.c:993: safety-critical checks rely on KASSERT (no-op on production)

Verified recommended fix

Source-confirmed at sys/net/if_ethersubr.c:993: safety-critical checks rely on KASSERT (no-op on production)

Verdict

Source-confirmed at sys/net/if_ethersubr.c:993: safety-critical checks rely on KASSERT (no-op on production)