{
  "finding_id": "DF-4916",
  "status": "not_reproduced",
  "reproduced": 0,
  "impact": "none",
  "confidence": "certain",
  "verdict": "amdgpu_virt_init_data_exchange (amdgpu_virt.c:392-443) never validates that the kmaped fw VRAM reservation (fw_vram_usage.size taken verbatim from the host-supplied vBIOS, amdgpu_atombios.c:1803-1807 / amdgpu_atomfirmware.c:91-95; only gate is size>0 at amdgpu_ttm.c:1707) actually contains the fixed 64KB AMDGIM_DATAEXCHANGE_OFFSET exchange area. It dereferences va+64KB immediately (amdgpu_virt.c:402-408) and, on a host-forgeable checksum (key is host-supplied via mailbox 2, mxgpu_ai.c:176-180), memsets 1024 bytes at va+64KB+pf2vf_size with pf2vf_size host-controlled in (0,4096) (amdgpu_virt.c:411-420) - an OOB write of up to ~69KB offset into a region that may be as small as 1KB, plus OOB header reads. Guest panic or VRAM corruption at driver init / after VF FLR. Not reproduced on the audit guest (no AMD PCI device; fw_vram_usage.va stays NULL and the function returns at line 402). Bounds defect certain from source; inherited unchanged from upstream Linux v4.19.",
  "exploit_chain": "",
  "evidence": "VERDICT.md (full bound math with path:line); trigger.md (host-side vBIOS/GIM setup); env.txt (guest pciconf: zero AMD devices)",
  "kernel_refs": [
    "sys/dev/drm/amd/amdgpu/amdgpu_virt.c:402",
    "sys/dev/drm/amd/amdgpu/amdgpu_virt.c:405",
    "sys/dev/drm/amd/amdgpu/amdgpu_virt.c:411",
    "sys/dev/drm/amd/amdgpu/amdgpu_virt.c:416",
    "sys/dev/drm/amd/amdgpu/amdgpu_virt.c:419",
    "sys/dev/drm/amd/amdgpu/amdgpu_virt.h:74",
    "sys/dev/drm/amd/amdgpu/amdgpu_virt.h:209",
    "sys/dev/drm/amd/amdgpu/amdgpu_atombios.c:1805",
    "sys/dev/drm/amd/amdgpu/amdgpu_atomfirmware.c:93",
    "sys/dev/drm/amd/amdgpu/amdgpu_ttm.c:1707",
    "sys/dev/drm/amd/amdgpu/amdgpu_device.c:1695",
    "sys/dev/drm/amd/amdgpu/amdgpu_device.c:3345"
  ],
  "poc_changes": "No runnable PoC for this guest; pack carries the host-side trigger procedure (malicious/mismatched vBIOS reservation + forged pf2vf checksum) and source-level proof.",
  "attempts": 1,
  "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": 40,
  "guest_dirty": 0,
  "build_cmd": "n/a (SR-IOV VF AMD GPU guest required)",
  "run_cmd": "n/a (see trigger.md)",
  "code_hash": "a78aff5005f5c9434501e058bc26321e81f5d9c07791cc76d4b06fb6773ddea2",
  "notes": "Hardware-gated: no AMD GPU on audit guest, path unreachable (fw_vram_usage.va == NULL). Trigger data is host/PF-supplied (vBIOS table + VRAM contents + checksum key via mailbox); guest userspace cannot reach it. Consistent with the audits host-fed-mailbox precedent (DF-4755/4756): Low. Inherited from upstream v4.19 verbatim.",
  "recommended_fix": "Gate the whole exchange on fw_vram_usage.size >= AMDGIM_DATAEXCHANGE_OFFSET + sizeof(amdgim_vf2pf_info) and validate pf2vf_size >= sizeof(struct amdgim_pf2vf_info_v2) and pf2vf_size + sizeof(amdgim_vf2pf_info) <= size - AMDGIM_DATAEXCHANGE_OFFSET before use (see VERDICT.md diff).",
  "fix_status": "not_testable",
  "fix_baseline_reproduced": 0,
  "fix_patched_reproduced": 0,
  "fix_verdict": "Fix could not be validated: no SR-IOV AMD hardware in the audit guest, so neither baseline nor patched behavior is reachable.",
  "fix_evidence": "VERDICT.md Recommended fix section contains the git-apply-able diff against amdgpu_virt.c."
}