Subject: CVE-2023-52614: PM / devfreq: Fix buffer overflow in trans_stat_show

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

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

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

PM / devfreq: Fix buffer overflow in trans_stat_show

Fix buffer overflow in trans_stat_show().

Convert simple snprintf to the more secure scnprintf with size of
PAGE_SIZE.

Add condition checking if we are exceeding PAGE_SIZE and exit early from
loop. Also add at the end a warning that we exceeded PAGE_SIZE and that
stats is disabled.

Return -EFBIG in the case where we don't have enough space to write the
full transition table.

Also document in the ABI that this function can return -EFBIG error.

The Linux kernel CVE team has assigned CVE-2023-52614 to this issue.

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

	Issue introduced in 3.8 with commit e552bbaf5b98 and fixed in 5.10.216 with commit 087de000e4f8
	Issue introduced in 3.8 with commit e552bbaf5b98 and fixed in 5.15.149 with commit 796d3fad8c35
	Issue introduced in 3.8 with commit e552bbaf5b98 and fixed in 6.1.76 with commit 8a7729cda2dd
	Issue introduced in 3.8 with commit e552bbaf5b98 and fixed in 6.6.15 with commit a979f56aa4b9
	Issue introduced in 3.8 with commit e552bbaf5b98 and fixed in 6.7.3 with commit eaef4650fa20
	Issue introduced in 3.8 with commit e552bbaf5b98 and fixed in 6.8 with commit 08e23d05fa6d

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-2023-52614
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:
	Documentation/ABI/testing/sysfs-class-devfreq
	drivers/devfreq/devfreq.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/087de000e4f8c878c81d9dd3725f00a1d292980c
	https://git.kernel.org/stable/c/796d3fad8c35ee9df9027899fb90ceaeb41b958f
	https://git.kernel.org/stable/c/8a7729cda2dd276d7a3994638038fb89035b6f2c
	https://git.kernel.org/stable/c/a979f56aa4b93579cf0e4265ae04d7e9300fd3e8
	https://git.kernel.org/stable/c/eaef4650fa2050147ca25fd7ee43bc0082e03c87
	https://git.kernel.org/stable/c/08e23d05fa6dc4fc13da0ccf09defdd4bbc92ff4