Subject: CVE-2024-42279: spi: microchip-core: ensure TX and RX FIFOs are empty at start of a transfer

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

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

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

spi: microchip-core: ensure TX and RX FIFOs are empty at start of a transfer

While transmitting with rx_len == 0, the RX FIFO is not going to be
emptied in the interrupt handler. A subsequent transfer could then
read crap from the previous transfer out of the RX FIFO into the
start RX buffer. The core provides a register that will empty the RX and
TX FIFOs, so do that before each transfer.

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

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

	Issue introduced in 6.0 with commit 9ac8d17694b6 and fixed in 6.6.44 with commit 3feda3677e8b
	Issue introduced in 6.0 with commit 9ac8d17694b6 and fixed in 6.10.3 with commit 45e03d35229b
	Issue introduced in 6.0 with commit 9ac8d17694b6 and fixed in 6.11 with commit 9cf71eb0faef

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-42279
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/spi/spi-microchip-core.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/3feda3677e8bbe833c3a62a4091377a08f015b80
	https://git.kernel.org/stable/c/45e03d35229b680b79dfea1103a1f2f07d0b5d75
	https://git.kernel.org/stable/c/9cf71eb0faef4bff01df4264841b8465382d7927