โฌข DragonFlyBSD Kernel Audit
DF-5806 / fix-run.log
โ† back to finding โ†“ download raw
DF-5806 โ€” FIX VALIDATION LOG
============================

Fix: findings/poc/DF-5806/fix.diff โ€” never take the zero-progress
`goto restart` in soreceive()/sorecvtcp() when MSG_PEEK is set.

PATCHED-KERNEL BUILD (guest /usr/src, git apply verified FIX-APPLIED,
then):
  $ cd /usr/src && make -j6 nativekernel KERNCONF=X86_64_GENERIC
  (first attempt with buildkernel failed: "You must buildworld before
   buildkernel" โ€” retried with the nativekernel target as suggested by
   make itself)
  ... 4299 compile lines ...
  BUILD-RC=0
  $ make installkernel KERNCONF=X86_64_GENERIC
  INSTALL-RC=0
  >>> Kernel install for X86_64_GENERIC completed on Tue Oct 13 00:15:41
  (full build log was in guest /tmp, lost to the reboot /tmp wipe; the
   RC lines above are verbatim from the session)

BOOT INTO PATCHED KERNEL:
  $ uname -v
  DragonFly 6.5-DEVELOPMENT #1: Tue Oct 13 00:10:42 UTC 2026
      root@dfbsd:/usr/obj/usr/src/sys/X86_64_GENERIC
  $ md5 /usr/src/sys/kern/uipc_socket.c
  263d3630cff133bdc3be1cec2713571f      (patched; stock was 6b0c6fa5...)

EXACT SAME PoC RE-RUN (as unpriv user maxx):
  == single spinner, variant 0 ==
  spawned 1 spinner(s), variant 0
  NO-SPINNER-LEFT          <- recv() returned; child exited immediately
  SINGLE-OK

  == 6 spinners variant 0 + 6 variant 1 ==
  spawned 6 spinner(s), variant 0
  spawned 6 spinner(s), variant 1
  NO-SPINNERS              <- all 12 children exited
  BARRAGE-OK

  == guest still responsive? ==
  ALIVE
  12:17AM  up 33 secs, 0 users, load averages: 0.16, 0.04, 0.02
  0 peekspin processes left

FIX VERDICT: fixed.
  baseline (stock):    1 spinner  -> permanent guest-wide wedge (3/3 runs)
  patched (fix.diff): 12 spinners -> all exit instantly, guest healthy
The previously-observed bad behavior is GONE on the patched kernel.