⬢ DragonFlyBSD Kernel Audit
DF-4292 / verdict.json
← back to finding ↓ download raw
{
  "finding_id": "DF-4292",
  "status": "inconclusive",
  "reproduced": 0,
  "impact": "none",
  "confidence": "certain",
  "verdict": "atomctrl_get_smc_sclk_range_table() (ppatomctrl.c:1361-1386) dereferences psmu_info->ucSclkEntryNum at :1374 without checking the smu_atom_get_data_table() result (smu_helper.c:660-673 returns NULL when the VBIOS master data table lacks SMU_Info; the atom parser at amdgpu/atom.c:1384-1403 validates nothing). Callers vegam_smumgr.c:677 and polaris10_smumgr.c:807 run this during SMU backend init at driver attach, so a VEGAM/Polaris VBIOS without SMU_Info yields a Fatal trap 12 NULL-deref kernel panic at boot/module-load (CWE-476). Distinct from DF-1496 (the ucSclkEntryNum count overflow in the same function, which requires the table to exist): this is the missing table-pointer guard \u2014 every sibling getter in the file NULL-checks (:494, :682, :1228, :1400, :1492). Severity Low (companion guard to the already-filed worse defect). Not runnable on this guest (no AMD dGPU \u2014 env.txt); trace-certain.",
  "exploit_chain": "",
  "evidence": "VERDICT.md; README.md; fix.diff (NULL guard); env.txt",
  "kernel_refs": [
    "sys/dev/drm/amd/powerplay/hwmgr/ppatomctrl.c:1374",
    "sys/dev/drm/amd/powerplay/smumgr/vegam_smumgr.c:677",
    "sys/dev/drm/amd/powerplay/smumgr/polaris10_smumgr.c:807"
  ],
  "poc_changes": "n/a \u2014 no AMD dGPU on guest; code-trace evidence pack",
  "attempts": 0,
  "guest_uname": "DragonFly dfbsd 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": "",
  "run_cmd": "",
  "notes": "Hardware-absent case (DF-1497/1498 precedent). Low: same-function companion guard to DF-1496.",
  "recommended_fix": "NULL-check psmu_info in atomctrl_get_smc_sclk_range_table and return -1",
  "fix_status": "not_testable",
  "fix_baseline_reproduced": 0,
  "fix_patched_reproduced": 0,
  "fix_verdict": "Baseline behavior not reproducible on this guest (no AMD dGPU) -> no fixed-kernel build possible. fix.diff authored from trace.",
  "fix_evidence": "findings/poc/DF-4292/fix.diff (not applied to sys/; authored post-verification from line-accurate trace)"
}