⬢ DragonFlyBSD Kernel Audit
DF-5030 / verdict.json
← back to finding ↓ download raw
{
  "finding_id": "DF-5030",
  "status": "untested",
  "reproduced": false,
  "impact": "none",
  "confidence": "certain",
  "verdict": "ar5312GetMacAddr (sys/dev/netif/ath/ath_hal/ar5312/ar5312_attach.c:287-309) dereferences the BSP-supplied ah_st as struct ar531x_config* and copies 6 bytes from board->wlanXMac with no NULL check and no AR531X_BD_MAGIC validation; on a MIPS SoC build with missing/corrupt flash board-data this is a wild-pointer kernel read (panic, or 6 bytes of kernel/flash memory exposed as the unprivileged-readable Wi-Fi MAC). However, the file is not compiled into any standard DragonFly build: sys/conf/files and the ath_hal kmod Makefile contain no ar5312 entry, AH_SUPPORT_2316/2317 are defined nowhere, and the shipped ath_hal.ko and static kernel on the audit guest contain zero ar5312 symbols. Info-severity latent defect; Phase V runtime PoC skipped per contract (code unreachable at build time).",
  "exploit_chain": "",
  "evidence": "reachability.log (guest: conf-files-ar5312-count 0, hal-makefile-ar5312-count 0, symbols-ar5312-in-ath_hal.ko 0, symbols-ar5312-in-kernel 0); ar5312_attach.c:287-309; ar5312/ar5312.h:25-30; ah_soc.h:33-35,79-90; sys/conf/files:153-232; VERDICT.md",
  "kernel_refs": [
    "sys/dev/netif/ath/ath_hal/ar5312/ar5312_attach.c:287",
    "sys/dev/netif/ath/ath_hal/ar5312/ar5312_attach.c:307",
    "sys/dev/netif/ath/ath_hal/ar5312/ar5312.h:25",
    "sys/dev/netif/ath/ath_hal/ah_soc.h:35",
    "sys/dev/netif/ath/ath_hal/ah_soc.h:79",
    "sys/conf/files:153",
    "sys/dev/netif/ath/ath_hal/Makefile:14"
  ],
  "poc_changes": "No PoC built: the cited path is not compiled into the shipped ath_hal.ko or kernel (proven read-only on the guest). A reachability probe script (reachability.sh) replaces the trigger.",
  "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": 6,
  "guest_dirty": 0,
  "build_cmd": "",
  "run_cmd": "dfbsd-qemu/vm.sh run_root ...reachability probes... (see reachability.sh; read-only)",
  "code_hash": "6d7cd6789ffa3ea3b4f64b33dd2de19cb4a4e3922cadf85ea6cf78f36ea29c9d",
  "notes": "Reserved IDs DF-5030..DF-5041; this pack uses DF-5030. Other latent nits in the file (dup VENICE condition 157-160, dead stores 149-150, (uint32_t)sh truncation 139-152) recorded in VERDICT.md, not filed. Error-unwind path audited and found sound (ar5212RfDetach NULL-guard ar5212.h:403-406).",
  "recommended_fix": "Validate the BSP-supplied ar531x_config in ar5312GetMacAddr: reject NULL config/board and board->magic != AR531X_BD_MAGIC before the 6-byte copy (fix.diff).",
  "fix_status": "not_applicable",
  "fix_baseline_reproduced": false,
  "fix_patched_reproduced": false,
  "fix_verdict": "Fix validation not applicable: Info-severity latent finding, no runtime baseline exists on the guest (file not compiled), Phase V skipped per contract.",
  "fix_evidence": "n/a (no fix build performed)"
}