DF-4103 / verdict.json
{ "finding_id": "DF-4103", "status": "untested", "reproduced": 0, "impact": "none", "confidence": "certain", "verdict": "Source-level certain: amdgpu_atombios_encoder_setup_dig_transmitter (:837/:848), setup_dig_encoder (:648/:668), setup_dig (:1402/:1414 NULL write) and set_crtc_source (:1617/:1686) all dereference amdgpu_encoder->enc_priv unguarded; enc_priv is NULL whenever amdgpu_atombios_encoder_get_lcd_info() fails (missing LVDS_Info VBIOS table, atombios_encoders.c:2081) or get_dig_info()/kzalloc fails. Boot-time sink: dce_v{8,10,11}_0_hw_init -> amdgpu_atombios_encoder_init_dig (:1744/:1758). Result is a NULL-page read/write -> deterministic kernel panic (DoS), not code execution. Not runnable: the QEMU audit guest has no AMD GPU (pciconf: bochs 1234:1111 only), so the driver never attaches.", "exploit_chain": "", "evidence": "VERDICT.md table of the four unguarded sinks; contrast with the existing guard at atombios_encoders.c:91-93; dce_v10_0.c:3516-3528 enc_priv assignment sites; dce_v10_0.c:2829-2839 boot-path caller.", "kernel_refs": [ "sys/dev/drm/amd/amdgpu/atombios_encoders.c:837", "sys/dev/drm/amd/amdgpu/atombios_encoders.c:848", "sys/dev/drm/amd/amdgpu/atombios_encoders.c:648", "sys/dev/drm/amd/amdgpu/atombios_encoders.c:668", "sys/dev/drm/amd/amdgpu/atombios_encoders.c:1402", "sys/dev/drm/amd/amdgpu/atombios_encoders.c:1414", "sys/dev/drm/amd/amdgpu/atombios_encoders.c:1617", "sys/dev/drm/amd/amdgpu/atombios_encoders.c:1686", "sys/dev/drm/amd/amdgpu/atombios_encoders.c:2069", "sys/dev/drm/amd/amdgpu/dce_v10_0.c:3516" ], "poc_changes": "No PoC possible on guest (hardware absent); evidence pack is a source-level trace instead of a runnable trigger.", "attempts": 0, "guest_uname": "DragonFly dfbsd 6.5-DEVELOPMENT #0: Thu Jul 2 06:02:54 UTC 2026 x86_64 (no AMD GPU: pciconf -l shows bochs 1234:1111)", "runtime_sec": 0, "guest_dirty": 0, "build_cmd": "", "run_cmd": "", "code_hash": "", "notes": "Hardware-gated (AMD GPU + LCD-supporting UNIPHY encoder + crafted VBIOS or boot-time kzalloc failure). amdgpu twin of DF-3957 (radeon). Impact ceiling: fatal trap / boot failure of the graphics driver - DoS only; NULL page is unmapped on DFly amd64. Checklist items (a)/(b)/(d) (engine-clock SS div0, percentage_divider, encoder_crtc_dig_mode tables) do not exist in this DFly file - they live in atombios_crtc.c / amdgpu_atombios.c (other files).", "recommended_fix": "Guard every enc_priv dereference with if (!dig) return/break, mirroring atombios_encoders.c:91-93.", "fix_status": "not_testable", "fix_baseline_reproduced": 0, "fix_patched_reproduced": 0, "fix_verdict": "fix.diff adds NULL guards to the four sink functions; cannot be kernel-built/tested on the guest because the amdgpu driver has no hardware to attach to.", "fix_evidence": "findings/poc/DF-4103/fix.diff" } |