CVE-2024-44951

Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
04/09/2024
Last modified:
09/10/2024

Description

In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> serial: sc16is7xx: fix TX fifo corruption<br /> <br /> Sometimes, when a packet is received on channel A at almost the same time<br /> as a packet is about to be transmitted on channel B, we observe with a<br /> logic analyzer that the received packet on channel A is transmitted on<br /> channel B. In other words, the Tx buffer data on channel B is corrupted<br /> with data from channel A.<br /> <br /> The problem appeared since commit 4409df5866b7 ("serial: sc16is7xx: change<br /> EFR lock to operate on each channels"), which changed the EFR locking to<br /> operate on each channel instead of chip-wise.<br /> <br /> This commit has introduced a regression, because the EFR lock is used not<br /> only to protect the EFR registers access, but also, in a very obscure and<br /> undocumented way, to protect access to the data buffer, which is shared by<br /> the Tx and Rx handlers, but also by each channel of the IC.<br /> <br /> Fix this regression first by switching to kfifo_out_linear_ptr() in<br /> sc16is7xx_handle_tx() to eliminate the need for a shared Rx/Tx buffer.<br /> <br /> Secondly, replace the chip-wise Rx buffer with a separate Rx buffer for<br /> each channel.

Vulnerable products and versions

CPE From Up to
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.1.76 (including) 6.2 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.6.15 (including) 6.7 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7.3 (including) 6.8 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.8 (including) 6.10.5 (excluding)
cpe:2.3:o:linux:linux_kernel:6.11:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc2:*:*:*:*:*:*