⬢ DragonFlyBSD Kernel Audit
DF-5411 / manifest.json
← back to finding ↓ download raw
{
  "finding_id": "DF-5411",
  "title": "udav_attach() failure paths call udav_detach() on a never-attached usb_ether -> deterministic kernel panic at evil-USB plug-in (lockmgr through NULL ue_lock; latent ether_ifdetach-on-unattached ifnet corruption)",
  "bucket": "base:hw",
  "verdict": "reproduced",
  "reproduced": 1,
  "impact": "panic",
  "confidence": "certain",
  "class": "goto-detach-on-unattached uether (DF-5334 family, 6th instance)",
  "kernel_refs": [
    "sys/bus/u4b/net/if_udav.c:263-268",
    "sys/bus/u4b/net/if_udav.c:280-283",
    "sys/bus/u4b/net/if_udav.c:285-289",
    "sys/bus/u4b/net/if_udav.c:293-295",
    "sys/bus/u4b/net/if_udav.c:304-305",
    "sys/bus/u4b/net/usb_ethernet.c:268-305",
    "sys/bus/u4b/usb_process.c:397-412"
  ],
  "reproduce": {
    "build": "cd /root/df5411 && make -m /usr/src/share/mk",
    "run": "kldload -v /root/df5411/udav_poc.ko",
    "expected": "baseline (stock uether.ko): 3 markers then Fatal trap 12 fault VA 0x0, Stopped at lockmgr_exclusive+0x5d, guest dead in DDB; patched (fix.diff): 4th marker SURVIVED, RC=0, 0 fatal traps, clean unload"
  },
  "artifacts": [
    "README.md",
    "VERDICT.md",
    "udav_attach_poc.c",
    "Makefile",
    "build.log",
    "panic.txt",
    "run.log",
    "fix_run.log",
    "fix_uether_build.log",
    "fix_udav_build.log",
    "fix_build.log",
    "env.txt",
    "fix.diff",
    "manifest.json",
    "verdict.json"
  ]
}