⬢ DragonFlyBSD Kernel Audit
DF-4795 / manifest.json
← back to finding ↓ download raw
{
  "finding_id": "DF-4795",
  "title": "ig_hal VF: uninitialized kernel-stack tail of the multicast mailbox message transmitted verbatim to the PF (hypervisor) — msgbuf in e1000_update_mc_addr_list_vf never initialized",
  "file": "sys/dev/netif/ig_hal/e1000_vf.c",
  "lines": [403, 436],
  "severity": "Low",
  "verdict": "untested",
  "impact": "guest kernel-stack residue disclosure to the host PF driver (kernleak bucket); no runtime demonstration possible on the virtio-only audit guest",
  "reproduce": {
    "build": "cc -Wall -O2 -o mcmsg_demo mcmsg_demo.c   (build.sh)",
    "run": "./mcmsg_demo   (run.sh)",
    "expected": "mc_addr_count=5 -> 'uninit stack bytes sent to PF: 50 of 60' (bytes 14..63 of the 64-byte mailbox message)"
  },
  "kernel_refs": [
    "sys/dev/netif/ig_hal/e1000_vf.c:403",
    "sys/dev/netif/ig_hal/e1000_vf.c:422",
    "sys/dev/netif/ig_hal/e1000_vf.c:429",
    "sys/dev/netif/ig_hal/e1000_vf.c:436",
    "sys/dev/netif/ig_hal/e1000_vf.c:385",
    "sys/dev/netif/ig_hal/e1000_mbx.c:476",
    "sys/dev/netif/ig_hal/e1000_mbx.c:477"
  ],
  "upstream_ref": "FreeBSD current sys/dev/e1000/e1000_vf.c: u32 msgbuf[E1000_VFMAILBOX_SIZE] = {};",
  "artifacts": [
    "README.md", "VERDICT.md", "mcmsg_demo.c", "build.sh", "run.sh",
    "build.log", "run.log", "env.txt", "fix.diff", "manifest.json", "verdict.json"
  ]
}