DF-5753 / manifest.json
{ "finding_id": "DF-5753", "title": "hci_intr() scodone completion dispatch (membership walk + hci_sco_complete) runs unlocked and unreferenced against syscall-context SCO teardown (sco_disconnect NULLs hl_sco then frees the link): NULL-pointer kernel write at hl_sco->sp_pending in netisr context, UAF extension", "verdict": "reproduced", "impact": "panic", "reproduce": { "build": "cd /root/hciuu && sh build.sh", "run": "kldload ./hci_unit_harness.ko; sysctl hw.hciu_setup=1; sysctl hw.hcius_fire=1500", "expected": "Fatal trap 12 within the first rounds: fault virtual address 0x1c, supervisor WRITE data, current process Idle (netisr); Stopped at hci_sco_complete+0x7: subl $0x1,0x1c(%rax) with rax=NULL" }, "kernel_refs": [ "sys/netbt/hci_unit.c:387", "sys/netbt/hci_unit.c:390", "sys/netbt/hci_unit.c:395", "sys/netbt/hci_unit.c:396", "sys/netbt/hci_unit.c:397", "sys/netbt/hci_unit.c:402", "sys/netbt/hci_unit.c:538", "sys/netbt/hci_unit.c:542", "sys/netbt/hci_link.c:884", "sys/netbt/hci_link.c:889", "sys/netbt/hci_link.c:931", "sys/netbt/hci_link.c:1019", "sys/netbt/hci_link.c:1024", "sys/netbt/sco_upper.c:310", "sys/netbt/sco_upper.c:213", "sys/netbt/sco_upper.c:215", "sys/netbt/sco_socket.c:253" ], "artifacts": [ "harness.c", "hci_stub.c", "Makefile", "build.sh", "run.sh", "xfer.sh", "build.log", "setup.log", "run.log", "fix_run.log", "panic.txt", "fix.diff", "README.md", "VERDICT.md", "manifest.json", "verdict.json", "env.txt" ] } |