{
  "finding_id": "DF-4355",
  "status": "untested",
  "reproduced": 0,
  "impact": "none",
  "confidence": "certain",
  "verdict": "The SMC91xx driver waits on the on-chip MMU engine with four completely unbounded busy-loops - if_sn.c:275-276 (sninit), 641-642 (snresume), 871-872 (sn_intr TX-error, hard IRQ context), 1056-1057 (snread, hard IRQ, per packet) - plus two device-driven no-exit loops (ARR_FAILED retry at 446-450->354; read_another FIFO walk at 1063-1067). On a glitching card or after physical PCMCIA ejection (floating port reads keep MMUCR_BUSY=0x0001 asserted), the spins never terminate while holding the ifnet serializer in interrupt context: the machine hangs and only a power cycle recovers. Source-level certainty is high (the same driver bounds its allocation wait at 415-419 with MEMORY_WAIT_TIME=1000, showing the omission is an oversight), but reproduction requires SMC91xx hardware which the QEMU guest lacks -> untested. Local DoS only, physical-presence/failing-hardware trigger, severity Low.",
  "exploit_chain": "",
  "evidence": "VERDICT.md (site-by-site table with lock context), README.md (trigger model + bounded-wait fix sketch), env.txt (guest lacks hardware), fix.diff (bounded waits at all four MMU sites). Decisive lines: if_sn.c:275, 641, 871, 1056 (unbounded spins), if_sn.c:415-419 (bounded counter-example), if_snreg.h:238/60.",
  "kernel_refs": [
    "sys/dev/netif/sn/if_sn.c:275",
    "sys/dev/netif/sn/if_sn.c:641",
    "sys/dev/netif/sn/if_sn.c:871",
    "sys/dev/netif/sn/if_sn.c:1056",
    "sys/dev/netif/sn/if_sn.c:446",
    "sys/dev/netif/sn/if_sn.c:1063",
    "sys/dev/netif/sn/if_sn.c:415",
    "sys/dev/netif/sn/if_snreg.h:238",
    "sys/dev/netif/sn/if_snreg.h:60"
  ],
  "poc_changes": "No executable PoC exists: path requires SMC91xx PCMCIA hardware (card ejection mid-transfer) absent from the guest. Evidence pack is source-level (VERDICT.md) plus guest hardware-inventory proof (env.txt).",
  "attempts": 0,
  "guest_uname": "DragonFly dfbsd 6.5-DEVELOPMENT DragonFly 6.5-DEVELOPMENT #0: Thu Jul  2 06:02:54 UTC 2026  root:dfbsd:/usr/obj/usr/src/sys/X86_64_GENERIC  x86_64",
  "runtime_sec": 0,
  "guest_dirty": 0,
  "build_cmd": null,
  "run_cmd": null,
  "code_hash": "sha256:d8511df37fba8dc921f0e29e7614da17d470456e64448e36619eb7ee9e079fbd (fix.diff)",
  "notes": "Hardware-gated DoS family. The detach path also cannot recover (sn_pccard_detach needs the same serializer - known DF-2186, if_sn_pccard.c). Folded in (not separately reported): snresume wrong-size path returns without clearing oactive/restarting TX (TX stall on misbehaving card) - same fault model, lower impact.",
  "recommended_fix": "Bound all four MMUCR_BUSY waits with a MEMORY_WAIT_TIME-scaled counter + DELAY(1) and bail out leaving the interface for the watchdog, mirroring the existing bounded wait at if_sn.c:415-419; cap the read_another/ARR_FAILED loops.",
  "fix_status": "not_testable",
  "fix_baseline_reproduced": 0,
  "fix_patched_reproduced": 0,
  "fix_verdict": "not_testable: fix validation requires SMC91xx hardware (guest has none). fix.diff applies bounded waits at all four MMU sites using the drivers own MEMORY_WAIT_TIME idiom; by inspection every patched loop terminates within ~1s per wait on both healthy and vanished hardware, converting the hang into a logged timeout.",
  "fix_evidence": "findings/poc/DF-4355/fix.diff (4 hunks); env.txt (hardware absent)."
}