Subject: CVE-2024-49894: drm/amd/display: Fix index out of bounds in degamma hardware format translation

From: Greg Kroah-Hartman <[email-masked]>

Description
===========

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

drm/amd/display: Fix index out of bounds in degamma hardware format translation

Fixes index out of bounds issue in
`cm_helper_translate_curve_to_degamma_hw_format` function. The issue
could occur when the index 'i' exceeds the number of transfer function
points (TRANSFER_FUNC_POINTS).

The fix adds a check to ensure 'i' is within bounds before accessing the
transfer function points. If 'i' is out of bounds the function returns
false to indicate an error.

Reported by smatch:
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_cm_common.c:594 cm_helper_translate_curve_to_degamma_hw_format() error: buffer overflow 'output_tf->tf_pts.red' 1025 <= s32max
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_cm_common.c:595 cm_helper_translate_curve_to_degamma_hw_format() error: buffer overflow 'output_tf->tf_pts.green' 1025 <= s32max
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_cm_common.c:596 cm_helper_translate_curve_to_degamma_hw_format() error: buffer overflow 'output_tf->tf_pts.blue' 1025 <= s32max

The Linux kernel CVE team has assigned CVE-2024-49894 to this issue.

Affected and fixed versions
===========================

	Fixed in 5.10.227 with commit c130a3c09e37
	Fixed in 5.15.168 with commit c6979719012a
	Fixed in 6.1.113 with commit 2495c8e272d8
	Fixed in 6.6.55 with commit 122e3a7a8c7b
	Fixed in 6.10.14 with commit 2f5da549535b
	Fixed in 6.11.3 with commit 07078fa5d589
	Fixed in 6.12-rc1 with commit b7e99058eb2e

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2024-49894
will be updated if fixes are backported, please check that for the most
up to date information about this issue.

Affected files
==============

The file(s) affected by this issue are:
	drivers/gpu/drm/amd/display/dc/dcn10/dcn10_cm_common.c

Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/c130a3c09e3746c1a09ce26c20d21d449d039b1d
	https://git.kernel.org/stable/c/c6979719012a90e5b8e3bc31725fbfdd0b9b2b79
	https://git.kernel.org/stable/c/2495c8e272d84685403506833a664fad932e453a
	https://git.kernel.org/stable/c/122e3a7a8c7bcbe3aacddd6103f67f9f36bed473
	https://git.kernel.org/stable/c/2f5da549535be8ccd2ab7c9abac8562ad370b181
	https://git.kernel.org/stable/c/07078fa5d589a7fbce8f81ea8acf7aa0021ab38e
	https://git.kernel.org/stable/c/b7e99058eb2e86aabd7a10761e76cae33d22b49f