In the Linux kernel, the following vulnerability has been resolved:
drm/amd/display: Fix division by zero in setupdscconfig
When sliceheight is 0, the division by sliceheight in the calculation of the number of slices will cause a division by zero driver crash. This leaves the kernel in a state that requires a reboot. This patch adds a check to avoid the division by zero.
The stack trace below is for the 6.8.4 Kernel. I reproduced the issue on a Z16 Gen 2 Lenovo Thinkpad with a Apple Studio Display monitor connected via Thunderbolt. The amdgpu driver crashed with this exception when I rebooted the system with the monitor connected.
kernel: ? die (arch/x86/kernel/dumpstack.c:421 arch/x86/kernel/dumpstack.c:434 arch/x86/kernel/dumpstack.c:447) kernel: ? dotrap (arch/x86/kernel/traps.c:113 arch/x86/kernel/traps.c:154) kernel: ? setupdscconfig (drivers/gpu/drm/amd/amdgpu/../display/dc/dsc/dcdsc.c:1053) amdgpu kernel: ? doerrortrap (./arch/x86/include/asm/traps.h:58 arch/x86/kernel/traps.c:175) kernel: ? setupdscconfig (drivers/gpu/drm/amd/amdgpu/../display/dc/dsc/dcdsc.c:1053) amdgpu kernel: ? excdivideerror (arch/x86/kernel/traps.c:194 (discriminator 2)) kernel: ? setupdscconfig (drivers/gpu/drm/amd/amdgpu/../display/dc/dsc/dcdsc.c:1053) amdgpu kernel: ? asmexcdivideerror (./arch/x86/include/asm/idtentry.h:548) kernel: ? setupdscconfig (drivers/gpu/drm/amd/amdgpu/../display/dc/dsc/dcdsc.c:1053) amdgpu kernel: dcdsccomputeconfig (drivers/gpu/drm/amd/amdgpu/../display/dc/dsc/dcdsc.c:1109) amdgpu
After applying this patch, the driver no longer crashes when the monitor is connected and the system is rebooted. I believe this is the same issue reported for 3113.
{ "vanir_signatures": [ { "id": "CVE-2024-36969-014dbcb1", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "226797090043572087686145622376144068643", "245758268397078407097468942902818393403", "165854027180667598407122656498889367054", "188437890406969942296490174134488683285" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@130afc8a886183a94cf6eab7d24f300014ff87ba", "target": { "file": "drivers/gpu/drm/amd/display/dc/dsc/dc_dsc.c" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-36969-05d2b05b", "signature_type": "Function", "digest": { "function_hash": "136451651058439456728262155436294536674", "length": 4453.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@308de6be0c9c7ba36915c0d398e771725c0ea911", "target": { "file": "drivers/gpu/drm/amd/display/dc/dsc/dc_dsc.c", "function": "setup_dsc_config" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-36969-1e79df72", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "226797090043572087686145622376144068643", "245758268397078407097468942902818393403", "165854027180667598407122656498889367054", "188437890406969942296490174134488683285" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f187fcbbb8f8bf10c6687f0beae22509369f7563", "target": { "file": "drivers/gpu/drm/amd/display/dc/dsc/dc_dsc.c" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-36969-2a3b7be1", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "226797090043572087686145622376144068643", "245758268397078407097468942902818393403", "165854027180667598407122656498889367054", "188437890406969942296490174134488683285" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7e4f50dfc98c49b3dc6875a35c3112522fb25639", "target": { "file": "drivers/gpu/drm/amd/display/dc/dsc/dc_dsc.c" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-36969-2e58fcce", "signature_type": "Function", "digest": { "function_hash": "136451651058439456728262155436294536674", "length": 4453.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f187fcbbb8f8bf10c6687f0beae22509369f7563", "target": { "file": "drivers/gpu/drm/amd/display/dc/dsc/dc_dsc.c", "function": "setup_dsc_config" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-36969-2fb3e0eb", "signature_type": "Function", "digest": { "function_hash": "202987436633256464831924406685082833832", "length": 4465.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@130afc8a886183a94cf6eab7d24f300014ff87ba", "target": { "file": "drivers/gpu/drm/amd/display/dc/dsc/dc_dsc.c", "function": "setup_dsc_config" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-36969-3fa251ef", "signature_type": "Function", "digest": { "function_hash": "136451651058439456728262155436294536674", "length": 4453.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7e4f50dfc98c49b3dc6875a35c3112522fb25639", "target": { "file": "drivers/gpu/drm/amd/display/dc/dsc/dc_dsc.c", "function": "setup_dsc_config" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-36969-50b5e109", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "226797090043572087686145622376144068643", "245758268397078407097468942902818393403", "165854027180667598407122656498889367054", "188437890406969942296490174134488683285" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a32c8f951c8a456c1c251e1dcdf21787f8066445", "target": { "file": "drivers/gpu/drm/amd/display/dc/dsc/dc_dsc.c" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-36969-95663f76", "signature_type": "Function", "digest": { "function_hash": "12051614601210366741590347399883330325", "length": 4144.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@91402e0e5de9124a3108db7a14163fcf9a6d322f", "target": { "file": "drivers/gpu/drm/amd/display/dc/dsc/dc_dsc.c", "function": "setup_dsc_config" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-36969-9c357d8a", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "226797090043572087686145622376144068643", "245758268397078407097468942902818393403", "165854027180667598407122656498889367054", "188437890406969942296490174134488683285" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@308de6be0c9c7ba36915c0d398e771725c0ea911", "target": { "file": "drivers/gpu/drm/amd/display/dc/dsc/dc_dsc.c" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-36969-b5947ba2", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "226797090043572087686145622376144068643", "245758268397078407097468942902818393403", "165854027180667598407122656498889367054", "188437890406969942296490174134488683285" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@91402e0e5de9124a3108db7a14163fcf9a6d322f", "target": { "file": "drivers/gpu/drm/amd/display/dc/dsc/dc_dsc.c" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-36969-f494a08c", "signature_type": "Function", "digest": { "function_hash": "304235796950746479168672348373774068613", "length": 4102.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a32c8f951c8a456c1c251e1dcdf21787f8066445", "target": { "file": "drivers/gpu/drm/amd/display/dc/dsc/dc_dsc.c", "function": "setup_dsc_config" }, "deprecated": false, "signature_version": "v1" } ] }