DF-4768 / verdict.json
{ "finding_id": "DF-4768", "status": "inconclusive", "reproduced": 0, "impact": "none", "confidence": "likely", "verdict": "SOURCE-CONFIRMED, INCONCLUSIVE-RUNTIME (no AMD GPU on audit guest). psp_cmd_submit_buf (amdgpu_psp.c:137-142) checks the PSP firmware response status only when ucode!=NULL, so psp_tmr_load (:193, GFX_CMD_ID_SETUP_TMR) and psp_asd_load (:260, GFX_CMD_ID_LOAD_ASD) return the ring-write status even when the firmware rejected the command (resp.status != 0): psp_hw_start reports success and psp_np_fw_load proceeds to load security ucode into a Trusted Memory Region the PSP never established, silently. Correctness/secure-boot-state issue, not kernel memory corruption; Info severity, hardware verification impossible on this guest.", "exploit_chain": "", "evidence": "README.md / VERDICT.md (path:line chain); fix.diff.", "kernel_refs": [ "sys/dev/drm/amd/amdgpu/amdgpu_psp.c:130", "sys/dev/drm/amd/amdgpu/amdgpu_psp.c:137", "sys/dev/drm/amd/amdgpu/amdgpu_psp.c:193", "sys/dev/drm/amd/amdgpu/amdgpu_psp.c:260" ], "poc_changes": "No runtime PoC possible on this guest; static-only evidence pack.", "attempts": 0, "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": "n/a (no AMD GPU on guest)", "run_cmd": "n/a", "code_hash": "n/a", "notes": "Upstream Linux carried the same ucode-gated status check in this era; treat as hardening.", "recommended_fix": "Check resp.status unconditionally: drop the ucode && at amdgpu_psp.c:138 (fix.diff).", "fix_status": "not_testable", "fix_baseline_reproduced": 0, "fix_patched_reproduced": 0, "fix_verdict": "fix.diff applies cleanly to pristine sys/dev/drm/amd/amdgpu/amdgpu_psp.c; runtime validation needs AMD hardware absent from the guest.", "fix_evidence": "fix.diff (one-token guard removal)." } |