⬢ DragonFlyBSD Kernel Audit
DF-3599 / verdict.json
← back to finding ↓ download raw
{
  "finding_id": "DF-3599",
  "status": "inconclusive",
  "reproduced": 0,
  "impact": "none",
  "confidence": "certain",
  "verdict": "On MEC2 firmware request failure gfx_v8_0_init_microcode sets adev->gfx.mec2_fw = NULL and err = 0 (:1170-1173) so initialization succeeds, but on Carrizo cz_init_cp_jump_table sets max_me = 5 (:1309-1310) and the me==4 iteration dereferences adev->gfx.mec2_fw->data (:1349) and the header fields at :1321-1322-pattern reads without a NULL check -> NULL-page read -> kernel panic during gfx_v8_0_rlc_init (:1418) / sw_init (:2091) whenever amdgpufw_carrizo_mec2 is missing or unreadable. Availability-only with a privileged precondition (firmware file manipulation/broken install) -> Low. Not executable on the virtio-only audit guest (no AMD GPU, no amdgpu module) -> inconclusive at runtime; control flow proven from source.",
  "exploit_chain": "",
  "evidence": "run.log (source excerpts of the three linked defects); VERDICT.md; fix.diff",
  "kernel_refs": ["sys/dev/drm/amd/amdgpu/gfx_v8_0.c:1170", "sys/dev/drm/amd/amdgpu/gfx_v8_0.c:1309", "sys/dev/drm/amd/amdgpu/gfx_v8_0.c:1349", "sys/dev/drm/amd/amdgpu/gfx_v8_0.c:1418", "sys/dev/drm/amd/amdgpu/gfx_v8_0.c:2091"],
  "poc_changes": "authored fresh (pass 2)",
  "attempts": 1,
  "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": 10,
  "guest_dirty": 0,
  "build_cmd": "(none - source assertion)",
  "run_cmd": "./run.sh",
  "code_hash": "",
  "notes": "Distinct from DF-1134 (jt_offset/jt_size OOB in the same function): this is the NULL-pointer reachability of the me==4 slot itself.",
  "recommended_fix": "Gate the 5th jump-table slot on mec2_fw presence: if (asic_type == CHIP_CARRIZO && adev->gfx.mec2_fw) max_me = 5;",
  "fix_status": "not_testable",
  "fix_baseline_reproduced": 0,
  "fix_patched_reproduced": 0,
  "fix_verdict": "fix.diff adds the mec2_fw presence check; not buildable/testable on the virtio-only guest (amdgpu module absent).",
  "fix_evidence": "findings/poc/DF-3599/fix.diff"
}