Subject: CVE-2024-38634: serial: max3100: Lock port->lock when calling uart_handle_cts_change()

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

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

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

serial: max3100: Lock port->lock when calling uart_handle_cts_change()

uart_handle_cts_change() has to be called with port lock taken,
Since we run it in a separate work, the lock may not be taken at
the time of running. Make sure that it's taken by explicitly doing
that. Without it we got a splat:

  WARNING: CPU: 0 PID: 10 at drivers/tty/serial/serial_core.c:3491 uart_handle_cts_change+0xa6/0xb0
  ...
  Workqueue: max3100-0 max3100_work [max3100]
  RIP: 0010:uart_handle_cts_change+0xa6/0xb0
  ...
   max3100_handlerx+0xc5/0x110 [max3100]
   max3100_work+0x12a/0x340 [max3100]

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

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

	Issue introduced in 2.6.30 with commit 7831d56b0a35 and fixed in 4.19.316 with commit 44b38924135d
	Issue introduced in 2.6.30 with commit 7831d56b0a35 and fixed in 5.4.278 with commit ea9b35372b58
	Issue introduced in 2.6.30 with commit 7831d56b0a35 and fixed in 5.10.219 with commit cc121e3722a0
	Issue introduced in 2.6.30 with commit 7831d56b0a35 and fixed in 5.15.161 with commit 78dbda51bb42
	Issue introduced in 2.6.30 with commit 7831d56b0a35 and fixed in 6.1.93 with commit 8296bb9e5925
	Issue introduced in 2.6.30 with commit 7831d56b0a35 and fixed in 6.6.33 with commit 93df2fba6c7d
	Issue introduced in 2.6.30 with commit 7831d56b0a35 and fixed in 6.9.4 with commit 865b30c86619
	Issue introduced in 2.6.30 with commit 7831d56b0a35 and fixed in 6.10 with commit 77ab53371a20

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-38634
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/max3100.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/44b38924135d2093e2ec1812969464845dd66dc9
	https://git.kernel.org/stable/c/ea9b35372b58ac2931bfc1d5bc25e839d1221e30
	https://git.kernel.org/stable/c/cc121e3722a0a2c8f716ef991e5425b180a5fb94
	https://git.kernel.org/stable/c/78dbda51bb4241b88a52d71620f06231a341f9ba
	https://git.kernel.org/stable/c/8296bb9e5925b6634259c5d4daee88f0cc0884ec
	https://git.kernel.org/stable/c/93df2fba6c7dfa9a2f08546ea9a5ca4728758458
	https://git.kernel.org/stable/c/865b30c8661924ee9145f442bf32cea549faa869
	https://git.kernel.org/stable/c/77ab53371a2066fdf9b895246505f5ef5a4b5d47