DF-5395 / manifest.json
{ "finding_id": "DF-5395", "file": "sys/bus/u4b/net/if_axge.c", "title": "axge_attach() failure paths call axge_detach() on a never-attached usb_ether -> kernel panic at evil-USB plug-in (lockmgr through NULL ue_lock; latent ether_ifdetach-on-unattached ifnet corruption)", "verdict": "reproduced", "impact": "panic", "confidence": "certain", "reproduce": { "build": "in-guest: cd /root/df5395 && make -m /usr/src/share/mk", "run": "in-guest: kldload -v /root/df5395/axge_poc.ko", "expected": "3 axge_poc marker lines, then 'Fatal trap 12: page fault while in kernel mode', 'fault virtual address = 0x0', 'Stopped at lockmgr_exclusive+0x5d: orl (%r14),%esi', guest dead in DDB. With fix.diff applied + patched uether.ko: 'axge_poc: SURVIVED uether_ifdetach()', KLDLOAD_RC=0." }, "kernel_refs": [ "sys/bus/u4b/net/if_axge.c:549-558", "sys/bus/u4b/net/if_axge.c:560-564", "sys/bus/u4b/net/if_axge.c:566-575", "sys/bus/u4b/net/if_axge.c:579-591", "sys/bus/u4b/net/usb_ethernet.c:267-305", "sys/bus/u4b/usb_process.c:397-410" ], "artifacts": [ "README.md", "VERDICT.md", "axge_attach_poc.c", "Makefile", "build.sh", "run.sh", "build.log", "panic.txt", "run.log", "fix_uether_build.log", "fix_if_axge_build.log", "env.txt", "fix.diff", "manifest.json", "verdict.json" ] } |