DragonFlyBSD Kernel Audit
DF-0022 / run.baseline_default_kernel.log
← back to finding ↓ download raw
=== Default #0 GENERIC kernel (no PPS_SYNC) baseline ===
$ sysctl -n kern.version | head -1
DragonFly 6.5-DEVELOPMENT #0: Thu Jul  2 06:02:54 UTC 2026
$ ls -l /dev/pps0 /dev/ttyd0
ls: /dev/pps0: No such file or directory
crw------- 1 root wheel 27, 0x00000000 /dev/ttyd0

maxx (uid 1001) running ./kcbind:
  /dev/pps0  -> open: No such file or directory  (no pps(4) parallel-port device in KVM)
  /dev/ttyd0 -> open: Permission denied          (sio0 node is 0600 root-only)

Conclusion: on the default GENERIC kernel the PPS_IOC_KCBIND path is NOT
reachable by an unprivileged user:
  (1) PPS_SYNC is not in X86_64_GENERIC (only LINT64:791) -> the
      #ifdef PPS_SYNC KCBIND handler at kern_clock.c:1681 is compiled OUT,
      so even an openable PPS device would return EOPNOTSUPP.
  (2) No world-openable PPS device node exists (/dev/pps0 absent,
      /dev/ttyd0 is 0600).
The missing-check is real in source (kern_clock.c:1683 XXX comment) but latent.