DF-4791 / manifest.json
{ "finding_id": "DF-4791", "title": "TTM memory-accounting shrinker unbounded recursion (ttm_shrink <-> ttm_bo_swapout) exhausts the 16KiB kernel stack", "verdict": "not_reproduced (guest has no DRM device; source-proven)", "impact_class": "local kernel stack overflow / memory corruption (DoS-class on guest-less observation)", "reproduce": { "build": "cc -O2 -Wall -o ttm_shrink_recursion ttm_shrink_recursion.c", "run": "./ttm_shrink_recursion 64 268435456", "expected": "On GPU (radeon/amdgpu) machines: kernel panic / stack-smash with repeating ttm_shrink/ttm_bo_swapout/ttm_pool_populate backtrace. On this guest: exit 2 at open(/dev/dri/card0) ENOENT." }, "kernel_refs": [ "sys/dev/drm/ttm/ttm_memory.c:517", "sys/dev/drm/ttm/ttm_memory.c:213", "sys/dev/drm/ttm/ttm_memory.c:502", "sys/dev/drm/ttm/ttm_bo.c:1807", "sys/dev/drm/ttm/ttm_bo.c:1809", "sys/dev/drm/ttm/ttm_bo.c:182", "sys/dev/drm/ttm/ttm_bo.c:344", "sys/dev/drm/ttm/ttm_tt.c:341", "sys/dev/drm/ttm/ttm_page_alloc.c:910", "sys/cpu/x86_64/include/param.h:126" ], "artifacts": [ "README.md", "VERDICT.md", "ttm_shrink_recursion.c", "build.sh", "run.sh", "build.log", "run.log", "env.txt", "fix.diff", "manifest.json", "verdict.json" ] } |