DF-3604 / manifest.json
{ "finding_id": "DF-3604", "title": "bce_rx_intr trusts NIC-DMA'd l2_fhdr_pkt_len without MCLBYTES bound: heap OOB read (up to ~63.5KB) and unsigned underflow (~4GB m_len) from faulty/malicious BCM5706-5716", "verdict": "inconclusive", "reproduced": 0, "impact_ceiling": "kernel heap info leak + local DoS (panic); no write primitive", "reproduce": { "build": "./build.sh (cc -o trigger trigger.c)", "run": "./run.sh (guest environment proof; real trigger needs bce hardware)", "expected": "On this guest: pci/if_bce registered in kernel, NO_BROADCOM_DEVICE, NO_BCE_PCIID, ifconfig='vtnet0 lo0', no hw.bce.* sysctls — attack surface unreachable. On hardware with a lying NIC: handed-up mbuf m_len up to 65531 on a 2048-byte cluster (leak via bpf/raw socket) or ~4GB (panic)." }, "kernel_refs": [ "sys/dev/netif/bce/if_bce.c:4396", "sys/dev/netif/bce/if_bce.c:4399", "sys/dev/netif/bce/if_bce.c:4437", "sys/dev/netif/bce/if_bce.c:4439", "sys/dev/netif/bce/if_bce.c:3851", "sys/dev/netif/bce/if_bce.c:2298", "sys/dev/netif/bce/if_bcereg.h:815" ], "artifacts": [ "README.md", "VERDICT.md", "trigger.c", "build.sh", "run.sh", "build.log", "run.log", "env.txt", "fix.diff", "verdict.json", "manifest.json" ] } |