Subject: CVE-2023-52606: powerpc/lib: Validate size for vector operations

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

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

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

powerpc/lib: Validate size for vector operations

Some of the fp/vmx code in sstep.c assume a certain maximum size for the
instructions being emulated. The size of those operations however is
determined separately in analyse_instr().

Add a check to validate the assumption on the maximum size of the
operations, so as to prevent any unintended kernel stack corruption.

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

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

	Fixed in 4.19.307 with commit 42084a428a13
	Fixed in 5.4.269 with commit 0580f4403ad3
	Fixed in 5.10.210 with commit beee482cc4c9
	Fixed in 5.15.149 with commit de4f5ed63b8a
	Fixed in 6.1.77 with commit abd26515d4b7
	Fixed in 6.6.16 with commit 28b8ba8eebf2
	Fixed in 6.7.4 with commit 848e1d7fd710
	Fixed in 6.8 with commit 8f9abaa6d7de

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-52606
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:
	arch/powerpc/lib/sstep.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/42084a428a139f1a429f597d44621e3a18f3e414
	https://git.kernel.org/stable/c/0580f4403ad33f379eef865c2a6fe94de37febdf
	https://git.kernel.org/stable/c/beee482cc4c9a6b1dcffb2e190b4fd8782258678
	https://git.kernel.org/stable/c/de4f5ed63b8a199704d8cdcbf810309d7eb4b36b
	https://git.kernel.org/stable/c/abd26515d4b767ba48241eea77b28ce0872aef3e
	https://git.kernel.org/stable/c/28b8ba8eebf26f66d9f2df4ba550b6b3b136082c
	https://git.kernel.org/stable/c/848e1d7fd710900397e1d0e7584680c1c04e3afd
	https://git.kernel.org/stable/c/8f9abaa6d7de0a70fc68acaedce290c1f96e2e59