⬢ DragonFlyBSD Kernel Audit
DF-5659 / verdict.json
← back to finding ↓ download raw
{
  "finding_id": "DF-5659",
  "status": "reproduced",
  "reproduced": 1,
  "impact": "none",
  "confidence": "certain",
  "verdict": "Verified within the DF-5658 build-diff run: the real-rule-built vkernel64 global.o carries U GD_PRV_CMAP1/2/3, U GD_PRV_PMAP1, U GD_PRV_CADDR1/2/3, U GD_PRV_PADDR1 while the .globld gd_CMAP*/PMAP1/CADDR*/PADDR1 exports (global.s:77-78,86-93) are absent from nm entirely; all 8 ride into the linked vkernel64 binary as zero-relocation undefined symbols with the link exit 0. struct privatespace for vkernel64 (globaldata.h:107-114) contains no prv_CMAP*/CADDR*/PMAP1/PADDR1 fields, so unlike DF-5658s 13 these cannot be restored by adding ASSYM lines \u2014 the aliases are stale i386 lineage absent even from the pc64 twin. Deletion validated as part of fix.diff: zero undefined GD_* remain after the fix, link green.",
  "exploit_chain": "",
  "evidence": "nm_global_pristine.txt (8 U GD_PRV_* at object level); final_binary_baseline.txt (8 zero-relocation undefineds in final binary, link exit 0); final_binary_fixed.txt (0 U after deletion); ../DF-5658/VERDICT.md for the full run narrative",
  "kernel_refs": [
    "sys/platform/vkernel64/x86_64/global.s:77-78",
    "sys/platform/vkernel64/x86_64/global.s:86-93",
    "sys/platform/vkernel64/include/globaldata.h:107-114",
    "sys/platform/vkernel64/x86_64/genassym.c:72-121"
  ],
  "poc_changes": "No separate PoC authored \u2014 verified inside the DF-5658 evidence run (shared build tree); this pack carries the decisive extracts.",
  "attempts": 3,
  "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": "(same as DF-5658) cd /usr/src/sys/compile/VKERNEL64 && make assym.s global.o",
  "run_cmd": "nm global.o | grep  U GD_PRV_",
  "code_hash": "6a07ff3758f34594d4a39af5cc5d38d5aa909b9ab8985506ad67ebe615926fa6",
  "notes": "Split from DF-5658 because remediation differs (delete-vs-restore). Fields verifiably absent from vkernel64 struct privatespace; pc64 global.s has no PRV block, confirming stale lineage.",
  "recommended_fix": "Delete global.s:77-78 and the eight .set lines at global.s:86-93 (included and validated in DF-5658s fix.diff)",
  "fix_status": "fixed",
  "fix_baseline_reproduced": 1,
  "fix_patched_reproduced": 0,
  "fix_verdict": "Baseline: 8 undefined GD_PRV_* macros, 8 vanished exports, build green. After deleting the aliases (fix.diff): zero undefined GD_* of any kind in global.o and the final binary, link exit 0.",
  "fix_evidence": "fix.diff (global.s hunks), final_binary_fixed.txt, ../DF-5658/fixbuild.log"
}