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

am7990_start_locked lacks the 'break' after detecting a LANCE-owned TMD (dead-code twin of DF-4745): on a ring desync the driver dequeues an mbuf and overwrites the chip-owned descriptor and TX buffer

Summary

Same missing-upstream-break defect as DF-4745, verified identical by direct read; falls through to dequeue+lance_put overwriting a chip-owned TMD. am7990_config has zero in-tree callers (if_lnc_pci wires only am79900_config) - dead code on every current platform; filed for parity. One-line break fix.

Discussion (0)

No comments yet.

PoC verification

Evidence pack

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

Fix verification

not_testable
per-fix-DF-4775

Confirmed kernel references

Detail

Exploit chain

n/a on this tree (dead code); if revived: TX-ring desync -> driver overwrites chip-owned descriptor/buffer -> mangled frames + BUFF-error watchdog loop (interface hang)

Evidence (decisive lines)

findings/poc/DF-4775/ (this verdict)

Verdict

Source-certain dead-code twin of DF-4745 (verified identical structure by direct read): am7990_start_locked falls through to ifq_dequeue+lance_put after detecting a chip-owned TMD (missing upstream break, am7990.c:503-508). am7990_config has ZERO in-tree callers (if_lnc_pci.c:431 wires only am79900_config) - compiled into if_lnc.ko but unreachable on every current DFly platform; would need a future bus front-end. No LANCE hardware in QEMU. One-line break fix (fixes both twins in one sweep).