DF-4370 / manifest.json
{ "finding_id": "DF-4370", "file": "sys/dev/drm/amd/amdgpu/amdgpu_object.c", "title": "Placement-walk overflow + reachable BUG_ON panic from unprivileged GEM_CREATE domain mask (AMDGPU_BO_MAX_PLACEMENTS=3)", "verdict": "not_reproduced (target device absent on audit VM; static proof certain)", "impact_real_world": "unprivileged local kernel panic (DoS) on amdgpu systems; 12-36B constant OOB write inside the amdgpu_bo allocation before the panic", "reproduce": { "build": "cc -O2 -o /tmp/poc_df4370 /tmp/poc_df4370.c", "run": "/tmp/poc_df4370 # on any machine with an amdgpu /dev/dri node", "expected": "vulnerable: 'panic: BUG in amdgpu_bo_placement_from_domain at amdgpu_object.c:209' on first GEM_CREATE (domains=0x7); fixed: ioctl returns error/handle, program prints SURVIVED lines; no-AMD-hw: NO_DRM_DEVICES exit 2" }, "kernel_refs": [ "sys/dev/drm/amd/amdgpu/amdgpu_object.c:139-216", "sys/dev/drm/amd/amdgpu/amdgpu_object.c:209", "sys/dev/drm/amd/amdgpu/amdgpu_object.c:493", "sys/dev/drm/amd/amdgpu/amdgpu_object.h:35", "sys/dev/drm/amd/amdgpu/amdgpu_gem.c:233", "sys/dev/drm/amd/amdgpu/amdgpu_gem.c:260", "sys/dev/drm/amd/amdgpu/amdgpu_gem.c:727", "sys/dev/drm/amd/amdgpu/amdgpu_kms.c:1197", "sys/dev/drm/include/asm/bug.h:33", "sys/dev/drm/include/drm/ttm/ttm_placement.h:85" ], "artifacts": [ "README.md", "VERDICT.md", "poc_df4370.c", "build.sh", "run.sh", "build.log", "run.log", "env.txt", "fix.diff", "fix_notes.md", "manifest.json", "verdict.json" ] } |