DF-4696 / manifest.json
{ "finding_id": "DF-4696", "title": "Divide-by-zero (#DE panic) in dpp1_dscl_calc_lb_num_partitions for UABI-legal off-CRTC planes (recout.width==0 bypasses the viewport-only >=16 guard)", "verdict": "not_reproduced", "impact": "dos_on_real_hw_none_on_guest", "confidence": "certain", "reproduce": { "build": "cd findings/poc/DF-4696 && ./build.sh # cc -O2 -Wall -o trigger_df4696 trigger_df4696.c", "run": "cd findings/poc/DF-4696 && ./run.sh", "expected": "probe: open(/dev/dri/card0) fails (no AMD GPU under QEMU); control case prints clamped num_part_y=64; attack case prints 'divisor is 0 -> kernel would execute 816 / 0 at dcn10_dpp_dscl.c:439' then dies 'Floating point exception' exit 136 (SIGFPE = userland twin of kernel #DE panic)" }, "kernel_refs": [ "sys/dev/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c:411", "sys/dev/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c:416", "sys/dev/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c:439", "sys/dev/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c:440", "sys/dev/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c:441", "sys/dev/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c:463", "sys/dev/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c:476", "sys/dev/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c:647", "sys/dev/drm/amd/display/dc/dcn10/dcn10_dpp.c:141", "sys/dev/drm/amd/display/dc/core/dc_resource.c:615", "sys/dev/drm/amd/display/dc/core/dc_resource.c:639", "sys/dev/drm/amd/display/dc/core/dc_resource.c:1125", "sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c:2210", "sys/dev/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c:2029" ], "artifacts": [ "trigger_df4696.c", "build.sh", "run.sh", "build.log", "build_first_attempt.log", "run.log", "run.2.log", "env.txt", "fix.diff", "VERDICT.md", "manifest.json", "verdict.json" ] } |