⬢ DragonFlyBSD Kernel Audit
DF-3697 / manifest.json
← back to finding ↓ download raw
{
  "finding_id": "DF-3697",
  "title": "RLC v2_1 save-restore-list offset/size fields parsed without bounds check -> wild-pointer memcpy (OOB kernel heap read / panic)",
  "verdict": "not_reproduced",
  "impact": "none",
  "impact_on_hardware": "kernel heap OOB read copied into GPU-mapped firmware BO (info exposure) or page-fault panic",
  "threat_model": "attacker-controlled amdgpu RLC firmware image (root-replaced firmware file / compromised fw supply chain)",
  "reproduce": {
    "build": "cc -O2 -o fwgen_rlc fwgen_craft_rlc.c",
    "run": "./fwgen_rlc",
    "expected": "generates amdgpufw_raven_rlc.evil; on PSP-load AMD hardware installed as the RLC fw it drives amdgpu_ucode.c memcpy from fw->data+0x10000 (image is 256 B) -> OOB read/panic"
  },
  "kernel_refs": [
    "sys/dev/drm/amd/amdgpu/gfx_v9_0.c:516",
    "sys/dev/drm/amd/amdgpu/gfx_v9_0.c:524",
    "sys/dev/drm/amd/amdgpu/gfx_v9_0.c:528",
    "sys/dev/drm/amd/amdgpu/gfx_v9_0.c:532",
    "sys/dev/drm/amd/amdgpu/gfx_v9_0.c:670",
    "sys/dev/drm/amd/amdgpu/gfx_v9_0.c:715",
    "sys/dev/drm/amd/amdgpu/gfx_v9_0.c:776",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:381",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:251",
    "sys/dev/drm/amd/amdgpu/amdgpu_psp.c:428"
  ],
  "artifacts": [
    "README.md", "VERDICT.md", "fwgen_craft_rlc.c", "build.sh", "run.sh",
    "build.log", "run.log", "env.txt", "fix.diff", "manifest.json", "verdict.json"
  ]
}