CVE-2023-52488

In the Linux kernel, the following vulnerability has been resolved: serial: sc16is7xx: convert from _raw_ to _noinc_ regmap functions for FIFO The SC16IS7XX IC supports a burst mode to access the FIFOs where the initial register address is sent ($00), followed by all the FIFO data without having to resend the register address each time. In this mode, the IC doesn't increment the register address for each R/W byte. The regmap_raw_read() and regmap_raw_write() are functions which can perform IO over multiple registers. They are currently used to read/write from/to the FIFO, and although they operate correctly in this burst mode on the SPI bus, they would corrupt the regmap cache if it was not disabled manually. The reason is that when the R/W size is more than 1 byte, these functions assume that the register address is incremented and handle the cache accordingly. Convert FIFO R/W functions to use the regmap _noinc_ versions in order to remove the manual cache control which was a workaround when using the _raw_ versions. FIFO registers are properly declared as volatile so cache will not be used/updated for FIFO accesses.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

History

14 Feb 2025, 16:40

Type Values Removed Values Added
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
CPE cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
First Time Linux
Linux linux Kernel
CWE NVD-CWE-noinfo
References () https://git.kernel.org/stable/c/084c24e788d9cf29c55564de368bf5284f2bb5db - () https://git.kernel.org/stable/c/084c24e788d9cf29c55564de368bf5284f2bb5db - Mailing List, Patch
References () https://git.kernel.org/stable/c/416b10d2817c94db86829fb92ad43ce7d002c573 - () https://git.kernel.org/stable/c/416b10d2817c94db86829fb92ad43ce7d002c573 - Mailing List, Patch
References () https://git.kernel.org/stable/c/4e37416e4ee1b1bc17364a68973e0c63be89e611 - () https://git.kernel.org/stable/c/4e37416e4ee1b1bc17364a68973e0c63be89e611 - Mailing List, Patch
References () https://git.kernel.org/stable/c/aa7cb4787698add9367b19f7afc667662c9bdb23 - () https://git.kernel.org/stable/c/aa7cb4787698add9367b19f7afc667662c9bdb23 - Mailing List, Patch
References () https://git.kernel.org/stable/c/dbf4ab821804df071c8b566d9813083125e6d97b - () https://git.kernel.org/stable/c/dbf4ab821804df071c8b566d9813083125e6d97b - Mailing List, Patch
References () https://git.kernel.org/stable/c/e635f652696ef6f1230621cfd89c350cb5ec6169 - () https://git.kernel.org/stable/c/e635f652696ef6f1230621cfd89c350cb5ec6169 - Mailing List, Patch
References () https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html - () https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html - Mailing List, Patch

21 Nov 2024, 08:39

Type Values Removed Values Added
References
  • () https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html -
References () https://git.kernel.org/stable/c/084c24e788d9cf29c55564de368bf5284f2bb5db - () https://git.kernel.org/stable/c/084c24e788d9cf29c55564de368bf5284f2bb5db -
References () https://git.kernel.org/stable/c/416b10d2817c94db86829fb92ad43ce7d002c573 - () https://git.kernel.org/stable/c/416b10d2817c94db86829fb92ad43ce7d002c573 -
References () https://git.kernel.org/stable/c/4e37416e4ee1b1bc17364a68973e0c63be89e611 - () https://git.kernel.org/stable/c/4e37416e4ee1b1bc17364a68973e0c63be89e611 -
References () https://git.kernel.org/stable/c/aa7cb4787698add9367b19f7afc667662c9bdb23 - () https://git.kernel.org/stable/c/aa7cb4787698add9367b19f7afc667662c9bdb23 -
References () https://git.kernel.org/stable/c/dbf4ab821804df071c8b566d9813083125e6d97b - () https://git.kernel.org/stable/c/dbf4ab821804df071c8b566d9813083125e6d97b -
References () https://git.kernel.org/stable/c/e635f652696ef6f1230621cfd89c350cb5ec6169 - () https://git.kernel.org/stable/c/e635f652696ef6f1230621cfd89c350cb5ec6169 -

04 Nov 2024, 13:16

Type Values Removed Values Added
References
  • {'url': 'https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html', 'source': '416baaa9-dc9f-4396-8d5f-8c081fb06d67'}

25 Jun 2024, 22:15

Type Values Removed Values Added
References
  • () https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html -

13 Apr 2024, 12:15

Type Values Removed Values Added
References
  • () https://git.kernel.org/stable/c/4e37416e4ee1b1bc17364a68973e0c63be89e611 -

10 Apr 2024, 15:16

Type Values Removed Values Added
References
  • () https://git.kernel.org/stable/c/e635f652696ef6f1230621cfd89c350cb5ec6169 -
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: serial: sc16is7xx: convierte de _raw_ a _noinc_ funciones regmap para FIFO El IC SC16IS7XX admite un modo de ráfaga para acceder a los FIFO donde se envía la dirección de registro inicial ($00), seguida de todas los datos FIFO sin tener que reenviar la dirección de registro cada vez. En este modo, el IC no incrementa la dirección de registro para cada byte de lectura/escritura. regmap_raw_read() y regmap_raw_write() son funciones que pueden realizar IO en múltiples registros. Actualmente se utilizan para leer/escribir desde/hacia FIFO y, aunque funcionan correctamente en este modo de ráfaga en el bus SPI, dañarían el caché de regmap si no se desactivara manualmente. La razón es que cuando el tamaño de lectura y escritura es superior a 1 byte, estas funciones asumen que la dirección del registro se incrementa y manejan la caché en consecuencia. Convierta las funciones FIFO R/W para usar las versiones regmap _noinc_ para eliminar el control de caché manual, que era una solución alternativa al usar las versiones _raw_. Los registros FIFO se declaran correctamente como volátiles, por lo que la caché no se utilizará ni se actualizará para los accesos FIFO.

11 Mar 2024, 18:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-03-11 18:15

Updated : 2025-02-14 16:40


NVD link : CVE-2023-52488

Mitre link : CVE-2023-52488

CVE.ORG link : CVE-2023-52488


JSON object : View

Products Affected

linux

  • linux_kernel