DF-3849 / manifest.json
{ "verdict": "inconclusive", "verdict_detail": "source-level certain; hardware-gated at runtime (no dc NIC on the audit guest); integer mechanics executed on guest via trigger.c", "impact_class": "kernel heap OOB read up to ~14 KB past a 2040-byte RX cluster (info leak via BPF/stack) + negative m_len (~4 GB unsigned) on FRAMESZ<4 (DoS/panic) from a malicious or misbehaving dc(4) device", "severity": "Medium", "confidence": "certain", "reproduce": { "build": "cc -O2 -o /root/trigger /root/trigger.c # on the guest", "run": "/root/trigger ; plus hardware-absence probe: ifconfig -l ; pciconf -lv ; kldstat -v | grep if_dc", "expected": "FRAMESZ=16383 -> m_len=16379 on a 2040-byte cluster => OOB READ 14339 bytes past the cluster; FRAMESZ=2 -> NEGATIVE m_len (unsigned ~4294967294); guest shows pci/if_dc in kernel but no dc hardware" }, "kernel_refs": [ "sys/dev/netif/dc/if_dc.c:2523", "sys/dev/netif/dc/if_dc.c:2548", "sys/dev/netif/dc/if_dc.c:2568", "sys/dev/netif/dc/if_dc.c:2583", "sys/dev/netif/dc/if_dc.c:2590", "sys/dev/netif/dc/if_dc.c:2321", "sys/dev/netif/dc/if_dc.c:2343", "sys/dev/netif/dc/if_dcreg.h:415", "sys/dev/netif/dc/if_dcreg.h:465" ], "artifacts": [ "README.md", "VERDICT.md", "trigger.c", "build.sh", "run.sh", "build.log", "run.log", "fix.diff", "manifest.json", "verdict.json", "env.txt" ] } |