{
  "finding_id": "DF-2953",
  "title": "/dev/klog logtimeout() use-after-free read of sc_sigio vs FIOSETOWN free (pgsigio on freed struct sigio)",
  "file": "sys/kern/subr_log.c",
  "verdict": "reproduced",
  "impact": "panic",
  "confidence": "certain",
  "reproduce": {
    "build": "cc -O2 -Wall -o /root/klog_sigio_race /root/klog_sigio_race.c   (in guest, as root)",
    "run": "/etc/rc.d/syslogd stop; sysctl -w kern.log_wakeups_per_second=100; /root/klog_sigio_race   (as root)",
    "expected": "Fatal trap 12: page fault while in kernel mode; fault virtual address = 0x40; Stopped at pgsigio+0xcd: movl 0x40(%rdx),%edx; current process = Idle (softclock thread). Vulnerable kernel panics within seconds; patched kernel runs clean."
  },
  "kernel_refs": [
    "sys/kern/subr_log.c:247",
    "sys/kern/subr_log.c:248",
    "sys/kern/subr_log.c:292",
    "sys/kern/subr_log.c:301",
    "sys/kern/kern_descrip.c:1239",
    "sys/kern/kern_descrip.c:1272",
    "sys/kern/kern_descrip.c:1296",
    "sys/kern/kern_descrip.c:1368",
    "sys/kern/kern_sig.c:2639",
    "sys/kern/kern_sig.c:99",
    "sys/kern/subr_prf.c:296"
  ],
  "artifacts": [
    "klog_sigio_race.c",
    "build.sh",
    "run.sh",
    "build.log",
    "run.log",
    "panic.txt",
    "run2_brokenfix_panic.txt",
    "env.txt",
    "fix.diff",
    "fix.attempt2-systemic-sigio-ref.diff.unvalidated",
    "VERDICT.md",
    "README.md",
    "manifest.json",
    "verdict.json"
  ]
}