Subject: CVE-2024-27000: serial: mxs-auart: add spinlock around changing cts state

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

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

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

serial: mxs-auart: add spinlock around changing cts state

The uart_handle_cts_change() function in serial_core expects the caller
to hold uport->lock. For example, I have seen the below kernel splat,
when the Bluetooth driver is loaded on an i.MX28 board.

    [   85.119255] ------------[ cut here ]------------
    [   85.124413] WARNING: CPU: 0 PID: 27 at /drivers/tty/serial/serial_core.c:3453 uart_handle_cts_change+0xb4/0xec
    [   85.134694] Modules linked in: hci_uart bluetooth ecdh_generic ecc wlcore_sdio configfs
    [   85.143314] CPU: 0 PID: 27 Comm: kworker/u3:0 Not tainted 6.6.3-00021-gd62a2f068f92 #1
    [   85.151396] Hardware name: Freescale MXS (Device Tree)
    [   85.156679] Workqueue: hci0 hci_power_on [bluetooth]
    (...)
    [   85.191765]  uart_handle_cts_change from mxs_auart_irq_handle+0x380/0x3f4
    [   85.198787]  mxs_auart_irq_handle from __handle_irq_event_percpu+0x88/0x210
    (...)

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

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

	Issue introduced in 3.18 with commit 4d90bb147ef6 and fixed in 4.19.313 with commit 56434e295bd4
	Issue introduced in 3.18 with commit 4d90bb147ef6 and fixed in 5.4.275 with commit 21535ef0ac19
	Issue introduced in 3.18 with commit 4d90bb147ef6 and fixed in 5.10.216 with commit 0dc0637e6b16
	Issue introduced in 3.18 with commit 4d90bb147ef6 and fixed in 5.15.158 with commit 479244d68f5d
	Issue introduced in 3.18 with commit 4d90bb147ef6 and fixed in 6.1.88 with commit 2c9b943e9924
	Issue introduced in 3.18 with commit 4d90bb147ef6 and fixed in 6.6.29 with commit 5f40fd6ca2cf
	Issue introduced in 3.18 with commit 4d90bb147ef6 and fixed in 6.8.8 with commit 94b0e65c75f4
	Issue introduced in 3.18 with commit 4d90bb147ef6 and fixed in 6.9 with commit 54c4ec5f8c47

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-27000
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/tty/serial/mxs-auart.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/56434e295bd446142025913bfdf1587f5e1970ad
	https://git.kernel.org/stable/c/21535ef0ac1945080198fe3e4347ea498205c99a
	https://git.kernel.org/stable/c/0dc0637e6b16158af85945425821bfd0151adb37
	https://git.kernel.org/stable/c/479244d68f5d94f3903eced52b093c1e01ddb495
	https://git.kernel.org/stable/c/2c9b943e9924cf1269e44289bc5e60e51b0f5270
	https://git.kernel.org/stable/c/5f40fd6ca2cf0bfbc5a5c9e403dfce8ca899ba37
	https://git.kernel.org/stable/c/94b0e65c75f4af888ab2dd6c90f060f762924e86
	https://git.kernel.org/stable/c/54c4ec5f8c471b7c1137a1f769648549c423c026