{
  "finding_id": "DF-3449",
  "title": "dummynet3 KLD unload leaves stale ipfw3 filter_funcs and module registration: unguarded check_body() call executes unmapped module text (deterministic panic)",
  "verdict": "reproduced",
  "impact": "panic",
  "reproduce": {
    "build": "for d in ipfw3 ipfw3_basic dummynet3; do (cd /usr/src/sys/net/$d && make obj && make); done",
    "run": "upload trigger.sh to /root/df3449_trigger.sh; nohup sh /root/df3449_trigger.sh & ; watch dfbsd-qemu/vm.sh log",
    "expected": "kldunload dummynet3 succeeds despite live `pipe` rule; next packet -> Fatal trap 12, instruction pointer == former dummynet3.ko base (0xffffffff8260d000), supervisor read instruction page not present, current process Idle; guest drops to DDB"
  },
  "kernel_refs": [
    "sys/net/dummynet3/ip_dummynet3.c:1995",
    "sys/net/dummynet3/ip_dummynet3.c:2013",
    "sys/net/dummynet3/ip_dummynet3.c:2067",
    "sys/net/ipfw3/ip_fw3.c:505",
    "sys/net/ipfw3/ip_fw3.c:189"
  ],
  "artifacts": [
    "README.md",
    "VERDICT.md",
    "trigger.sh",
    "trigger_fixed.sh",
    "run.sh",
    "panic.txt",
    "console_full.txt",
    "run.patched.log",
    "env.txt",
    "fix.diff",
    "code_hash.txt",
    "verdict.json",
    "manifest.json"
  ]
}
