CVE-2024-36969

drm/amd/display: Fix division by zero in setup_dsc_config

State
Published
Severity
Not scored
Published
Jun 8, 2024
Updated
May 11, 2026
Reserved
May 30, 2024

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

drm/amd/display: Fix division by zero in setup_dsc_config

When slice_height is 0, the division by slice_height 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: ? do_trap (arch/x86/kernel/traps.c:113 arch/x86/kernel/traps.c:154) kernel: ? setup_dsc_config (drivers/gpu/drm/amd/amdgpu/../display/dc/dsc/dc_dsc.c:1053) amdgpu kernel: ? do_error_trap (./arch/x86/include/asm/traps.h:58 arch/x86/kernel/traps.c:175) kernel: ? setup_dsc_config (drivers/gpu/drm/amd/amdgpu/../display/dc/dsc/dc_dsc.c:1053) amdgpu kernel: ? exc_divide_error (arch/x86/kernel/traps.c:194 (discriminator 2)) kernel: ? setup_dsc_config (drivers/gpu/drm/amd/amdgpu/../display/dc/dsc/dc_dsc.c:1053) amdgpu kernel: ? asm_exc_divide_error (./arch/x86/include/asm/idtentry.h:548) kernel: ? setup_dsc_config (drivers/gpu/drm/amd/amdgpu/../display/dc/dsc/dc_dsc.c:1053) amdgpu kernel: dc_dsc_compute_config (drivers/gpu/drm/amd/amdgpu/../display/dc/dsc/dc_dsc.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.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 4562236b3bc0a28aeb6ee93b2d8a849a4c4e1c7c to before a32c8f951c8a456c1c251e1dcdf21787f8066445Affected
  • 4562236b3bc0a28aeb6ee93b2d8a849a4c4e1c7c to before 91402e0e5de9124a3108db7a14163fcf9a6d322fAffected
  • 4562236b3bc0a28aeb6ee93b2d8a849a4c4e1c7c to before 7e4f50dfc98c49b3dc6875a35c3112522fb25639Affected
  • 4562236b3bc0a28aeb6ee93b2d8a849a4c4e1c7c to before f187fcbbb8f8bf10c6687f0beae22509369f7563Affected
  • 4562236b3bc0a28aeb6ee93b2d8a849a4c4e1c7c to before 308de6be0c9c7ba36915c0d398e771725c0ea911Affected
  • 4562236b3bc0a28aeb6ee93b2d8a849a4c4e1c7c to before 130afc8a886183a94cf6eab7d24f300014ff87baAffected
LinuxLinux
  • 4.15Affected
  • before 4.15Not affected
  • 5.15.160 through 5.15.*Not affected
  • 6.1.92 through 6.1.*Not affected
  • 6.6.32 through 6.6.*Not affected
  • 6.8.11 through 6.8.*Not affected
  • 6.9.2 through 6.9.*Not affected
  • 6.10 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.