⬢ DragonFlyBSD Kernel Audit
DF-4272 / verdict.json
← back to finding ↓ download raw
{
  "finding_id": "DF-4272",
  "status": "untested",
  "reproduced": 0,
  "impact": "none",
  "confidence": "likely",
  "verdict": "Source-certain NULL-deref path, OOM-gated trigger. dcn_bw_notify_pplib_of_wm_ranges() (dcn_calcs.c:1401) loads pp = dc->res_pool->pp_smu and dereferences pp->set_wm_ranges at :1406 without checking pp. The sole assignment is pool->base.pp_smu = dcn10_pp_smu_create(ctx) (dcn10_resource.c:1352), which returns NULL on kzalloc failure (dcn10_resource.c:858-865); no NULL check anywhere between create and use. Call sites: dcn10_resource.c:1353-1357 (probe, unconditional unless disable_pplib_wm_range) and dcn10_hw_sequencer.c:2303 (optimize_shared_resources). Allocation failure during amdgpu DCN1 probe -> NULL read -> panic at boot/probe on Raven APU systems. Guest has no DCN1 GPU (env.txt), so not kernel-reproduced; trigger requires kernel memory pressure at the wrong instant (speculative trigger, certain code path). Upstream Linux DC of this vintage carries the same latent pattern.",
  "exploit_chain": "",
  "evidence": "VERDICT.md trace (create->store->deref chain with path:line); dcn10_resource.c:858-865 (NULL return), :1352-1357 (unchecked store + probe-time call); dcn_calcs.c:1401-1406",
  "kernel_refs": [
    "sys/dev/drm/amd/display/dc/calcs/dcn_calcs.c:1401",
    "sys/dev/drm/amd/display/dc/calcs/dcn_calcs.c:1406",
    "sys/dev/drm/amd/display/dc/dcn10/dcn10_resource.c:1352",
    "sys/dev/drm/amd/display/dc/dcn10/dcn10_resource.c:1357",
    "sys/dev/drm/amd/display/dc/dcn10/dcn10_resource.c:858",
    "sys/dev/drm/amd/display/dc/dcn10/dcn10_resource.c:865",
    "sys/dev/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c:2303"
  ],
  "poc_changes": "No PoC (no DCN1 hardware in guest); analysis pack.",
  "attempts": 0,
  "guest_uname": "DragonFly dfbsd 6.5-DEVELOPMENT DragonFly 6.5-DEVELOPMENT #0: Thu Jul  2 02:54:00 UTC 2026  root@dfbsd:/usr/obj/usr/src/sys/X86_64_GENERIC x86_64",
  "runtime_sec": 0,
  "guest_dirty": 0,
  "build_cmd": "",
  "run_cmd": "",
  "code_hash": "",
  "notes": "Part of the dcn_calcs.c pass-2 audit (DF-1485/DF-1486 known and excluded). Checklist item (b)/(c) sweep of the dml1 call surface; this is the only new actionable defect found in the file - division sites, per-plane array bounds, per-state tables, config copies and log/pow usage were all traced and found safe (see task_log negative notes).",
  "recommended_fix": "if (!pp || !pp->set_wm_ranges) return; in dcn_bw_notify_pplib_of_wm_ranges().",
  "fix_status": "not_testable",
  "fix_baseline_reproduced": 0,
  "fix_patched_reproduced": 0,
  "fix_verdict": "Fix validation requires DCN1 hardware; the guest has none.",
  "fix_evidence": "fix.diff; VERDICT.md"
}