{
  "finding_id": "DF-3617",
  "status": "inconclusive",
  "reproduced": 0,
  "impact": "none",
  "confidence": "likely",
  "verdict": "ath_intrs HAL_INT_SWBA TDMA branch (if_ath.c:2186-2190) passes TAILQ_FIRST(&ic->ic_vaps) unchecked into ath_tdma_beacon_send (which dereferences ATH_VAP(vap)->av_bcbuf) and then dereferences vap->iv_tdma->tdma_bintval. iv_tdma is NULL for every non-TDMA vap (wlan/ieee80211_tdma.c:197 allocates it only for TDMA vaps). sc_tdma is cleared only when sc_nvaps==0 (if_ath.c:1855-1858), so destroying the TDMA vap while a sibling vap remains leaves sc_tdma=1 with a NULL-iv_tdma vap at the list head: the next SWBA interrupt NULL-derefs in hard interrupt context (deterministic given the vap ordering; no timing luck needed). A teardown race variant also exists (an ISR already past ath_hal_intrpend at 2090 keeps running after ath_hal_intrset(ah,0) at 1785; SWBA processing holds no lock that vap detach respects). Not executable on the audit guest: no Atheros NIC means no SWBA can ever be raised (env.txt). Impact class: kernel panic / local DoS requiring admin-level TDMA vap reconfiguration.",
  "exploit_chain": "",
  "evidence": "README.md/VERDICT.md line-cited traces; env.txt (no ath hardware); fix.diff applies clean (git apply --check)",
  "kernel_refs": [
    "sys/dev/netif/ath/ath/if_ath.c:2186",
    "sys/dev/netif/ath/ath/if_ath.c:2190",
    "sys/dev/netif/ath/ath/if_ath.c:1855",
    "sys/dev/netif/ath/ath/if_ath_tdma.c:615",
    "sys/netproto/802_11/wlan/ieee80211_tdma.c:197"
  ],
  "poc_changes": "n/a - no seeded PoC; analysis-only pack (hardware-interrupt path, no HW on guest)",
  "attempts": 2,
  "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": 60,
  "guest_dirty": 0,
  "build_cmd": "",
  "run_cmd": "",
  "code_hash": "",
  "notes": "Fix also recommends clearing sc_tdma when the last TDMA vap (not last vap overall) is destroyed; minimal ISR guard is in fix.diff.",
  "recommended_fix": "Guard vap==NULL/iv_tdma==NULL in the SWBA TDMA branch and clear sc_tdma on last TDMA vap destruction",
  "fix_status": "not_testable",
  "fix_baseline_reproduced": 0,
  "fix_patched_reproduced": 0,
  "fix_verdict": "fix.diff adds ISR-side guards; applies clean via git apply --check but no ath hardware exists to run baseline/patched comparison",
  "fix_evidence": "findings/poc/DF-3617/fix.diff"
}