⬢ DragonFlyBSD Kernel Audit
DF-5842 / manifest.json
← back to finding ↓ download raw
{
  "finding_id": "DF-5842",
  "title": "select/pselect/ppoll pass unvalidated (negative / unnormalized) timeouts into kern_kevent: POSIX EINVAL missing, ~146-year sleeps collapse to immediate or arbitrary-short returns",
  "verdict": "reproduced",
  "impact": "dos",
  "confidence": "certain",
  "severity": "Low",
  "reproduce": {
    "build": "cc -O -o /tmp/timeout_rig /tmp/timeout_rig.c && cc -O -o /tmp/t8 /tmp/t8.c",
    "run": "/tmp/timeout_rig && /tmp/t8 && /tmp/t8",
    "expected": "T1 pselect{-1s} rc=0 in ~20-90us; T2 ppoll{0,2^62ns} rc=0 after ~1.7-2.0s; T8 select{0,2^62us} rc=0 in ~40-73us; T6 select(0fds,{-1s})=EINVAL (contrast); controls 2.000s/0.500s"
  },
  "kernel_refs": [
    "sys/kern/sys_generic.c:807",
    "sys/kern/sys_generic.c:842",
    "sys/kern/sys_generic.c:1271",
    "sys/kern/kern_event.c:872",
    "sys/kern/kern_event.c:975",
    "sys/kern/kern_clock.c:1196",
    "sys/kern/kern_time.c:467"
  ],
  "artifacts": [
    "README.md", "VERDICT.md", "timeout_rig.c", "t8.c", "build.sh", "run.sh",
    "build.log", "run.log", "run.2.log", "env.txt", "fix.diff",
    "manifest.json", "verdict.json"
  ]
}