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
(...)
| Software | From | Fixed in |
|---|---|---|
| linux / linux_kernel | 3.18 | 4.19.313 |
| linux / linux_kernel | 4.20 | 5.4.275 |
| linux / linux_kernel | 5.5 | 5.10.216 |
| linux / linux_kernel | 5.11 | 5.15.158 |
| linux / linux_kernel | 5.16 | 6.1.88 |
| linux / linux_kernel | 6.2 | 6.6.29 |
| linux / linux_kernel | 6.7 | 6.8.8 |
| linux / linux_kernel | 6.9-rc1 | 6.9-rc1.x |
| linux / linux_kernel | 6.9-rc2 | 6.9-rc2.x |
| linux / linux_kernel | 6.9-rc3 | 6.9-rc3.x |
| linux / linux_kernel | 6.9-rc4 | 6.9-rc4.x |
| debian / debian_linux | 10.0 | 10.0.x |
| fedoraproject / fedora | 38 | 38.x |
| fedoraproject / fedora | 39 | 39.x |
| fedoraproject / fedora | 40 | 40.x |