DF-3702 / verdict.json
{ "finding_id": "DF-3702", "status": "inconclusive", "reproduced": 0, "impact": "none", "confidence": "certain", "verdict": "Source-certain NULL-pointer dereference at driver attach (DF-3685 smu7 twin): vega10_pp_tables_initialize (vega10_processpptables.c:905-922,1107-1128) leaves optional subtable pointers NULL when the corresponding us*TableOffset is 0 and still returns success; vega10_hwmgr_backend_init then dereferences table_info->tdp_table at vega10_hwmgr.c:269 (via :862) and the six dep tables + vddc/vddci/vddmem lookup tables + mm table at :658/:661/:665/:677/:680 (via :876->:734), all before the only NULL asserts in the path (:754-762, reached at :879). Crafted-VBIOS Vega10 -> deterministic kernel panic at attach (DoS). Not reproducible on the audit guest (0 AMD PCI devices; amdgpu.ko present but never binds); cited lines verified byte-identical in guest /usr/src.", "exploit_chain": "crafted VBIOS (missing PowerTune/dep/lookup/MM offsets) -> amdgpu attach -> vega10_hwmgr_backend_init :862/:876 -> NULL deref -> panic (DoS); no control-flow hijack demonstrated", "evidence": "VERDICT.md proof chain; run.log (guest-src excerpts :269,:658-661, parser NULL-init 905-922); trigger_notes.c (blob recipe); fix.diff", "kernel_refs": [ "sys/dev/drm/amd/powerplay/hwmgr/vega10_hwmgr.c:269", "sys/dev/drm/amd/powerplay/hwmgr/vega10_hwmgr.c:658", "sys/dev/drm/amd/powerplay/hwmgr/vega10_hwmgr.c:661", "sys/dev/drm/amd/powerplay/hwmgr/vega10_hwmgr.c:665", "sys/dev/drm/amd/powerplay/hwmgr/vega10_hwmgr.c:677", "sys/dev/drm/amd/powerplay/hwmgr/vega10_hwmgr.c:876", "sys/dev/drm/amd/powerplay/hwmgr/vega10_processpptables.c:905" ], "poc_changes": "no runnable PoC possible (hardware-gated); documented the exact VBIOS offset fields to zero; verified cited lines in guest kernel source", "attempts": 2, "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": 60, "guest_dirty": 0, "build_cmd": "n/a (data-only trigger)", "run_cmd": "n/a on guest (no AMD hw); guest-src line confirmation in run.log", "code_hash": "906d08008ebee9f7a24e16e43658709e605a9da0dad91533bc96d5ef4ac97088", "notes": "smu7 checklist item (c). Pass-1 known findings DF-1179..1183 do not cover NULL subtables.", "recommended_fix": "Add NULL guards before :269 and inside vega10_patch_voltage_dependency_tables_with_lookup_table (skip absent optional tables; -EINVAL for mandatory ones), mirroring :754-762 asserts", "fix_status": "not_testable", "fix_baseline_reproduced": 0, "fix_patched_reproduced": 0, "fix_verdict": "fix.diff authored against read-only sys/ tree; no AMD hw on guest so no patched-kernel validation possible", "fix_evidence": "fix.diff; run.log hardware gate" } |