DF-4794 / manifest.json
{ "finding_id": "DF-4794", "title": "ig_hal VF: E1000_VF_SET_MULTICAST_OVERFLOW flag overwritten before send — PF never told to enable multicast promiscuous (>30 groups silently dropped)", "file": "sys/dev/netif/ig_hal/e1000_vf.c", "lines": [421, 427], "severity": "Low", "verdict": "untested", "impact": "none demonstrated at runtime (no SR-IOV VF hardware on guest); logic-level proven: multicast reception loss on igb VF interfaces when >30 groups joined", "reproduce": { "build": "cc -Wall -O2 -o mcmsg_demo mcmsg_demo.c (build.sh; deterministic logic demo)", "run": "./mcmsg_demo (run.sh)", "expected": "CURRENT ordering: mc_addr_count=31 -> PF-visible msgbuf[0]=0x001e0003 (OVERFLOW flag not set); FIXED ordering: 0x009e0003 (flag SET)" }, "kernel_refs": [ "sys/dev/netif/ig_hal/e1000_vf.c:421", "sys/dev/netif/ig_hal/e1000_vf.c:422", "sys/dev/netif/ig_hal/e1000_vf.c:426", "sys/dev/netif/ig_hal/e1000_vf.c:436", "sys/dev/netif/ig_hal/e1000_mbx.h:82", "sys/dev/netif/igb/if_igb.c:108", "sys/dev/netif/igb/if_igb.c:1304", "sys/dev/netif/ig_hal/e1000_api.c:510" ], "upstream_ref": "FreeBSD current sys/dev/e1000/e1000_vf.c assigns msgbuf[0] = E1000_VF_SET_MULTICAST before OR-ing E1000_VF_SET_MULTICAST_OVERFLOW (flag preserved)", "artifacts": [ "README.md", "VERDICT.md", "mcmsg_demo.c", "build.sh", "run.sh", "build.log", "run.log", "env.txt", "fix.diff", "manifest.json", "verdict.json" ] } |