DF-4215 / verdict.json
{ "finding_id": "DF-4215", "status": "untested", "reproduced": 0, "impact": "none", "confidence": "certain", "verdict": "construct() jumps to destruct() on any of six kzalloc failures, but destruct() unconditionally does dc_release_state(dc->current_state) (dc.c:521 \u2014 kref_put through NULL when current_state alloc at 615 failed) and derefs dc->ctx at 528/531/534/537 (NULL when the ctx alloc at 602 failed). A single OOM during amdgpu DC probe turns into a kernel NULL-deref panic instead of graceful Display Core failed to initialize.", "exploit_chain": "", "evidence": "findings/poc/DF-4215/VERDICT.md, findings/poc/DF-4215/env.txt (guest pciconf: no triggering hardware), findings/poc/DF-4215/fix.diff", "kernel_refs": [ "sys/dev/drm/amd/display/dc/core/dc.c:521", "sys/dev/drm/amd/display/dc/core/dc.c:528", "sys/dev/drm/amd/display/dc/core/dc.c:602", "sys/dev/drm/amd/display/dc/core/dc.c:615", "sys/dev/drm/amd/display/dc/core/dc.c:686", "sys/dev/drm/amd/display/dc/core/dc.c:1103" ], "poc_changes": "no runnable PoC: hardware-gated path absent from the audit guest (env.txt)", "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": null, "run_cmd": null, "code_hash": null, "notes": "ASSERT/ASSERT_CRITICAL are WARN_ON-only in this tree (os_types.h:59-77) so nothing stops the deref.", "recommended_fix": "NULL-guard current_state and all dc->ctx derefs in destruct()", "fix_status": "not_testable", "fix_baseline_reproduced": 0, "fix_patched_reproduced": 0, "fix_verdict": "diff authored and git-apply-verified against the read-only sys/ tree; runtime fix validation impossible without the triggering hardware on the QEMU guest", "fix_evidence": "findings/poc/DF-4215/fix.diff (git apply --check passed)" } |