CVE-2024-44950

In the Linux kernel, the following vulnerability has been resolved: serial: sc16is7xx: fix invalid FIFO access with special register set When enabling access to the special register set, Receiver time-out and RHR interrupts can happen. In this case, the IRQ handler will try to read from the FIFO thru the RHR register at address 0x00, but address 0x00 is mapped to DLL register, resulting in erroneous FIFO reading. Call graph example: sc16is7xx_startup(): entry sc16is7xx_ms_proc(): entry sc16is7xx_set_termios(): entry sc16is7xx_set_baud(): DLH/DLL = $009C --> access special register set sc16is7xx_port_irq() entry --> IIR is 0x0C sc16is7xx_handle_rx() entry sc16is7xx_fifo_read(): --> unable to access FIFO (RHR) because it is mapped to DLL (LCR=LCR_CONF_MODE_A) sc16is7xx_set_baud(): exit --> Restore access to general register set Fix the problem by claiming the efr_lock mutex when accessing the Special register set.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc2:*:*:*:*:*:*

History

09 Oct 2024, 14:21

Type Values Removed Values Added
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
CWE NVD-CWE-noinfo
CPE cpe:2.3:o:linux:linux_kernel:6.11:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
References () https://git.kernel.org/stable/c/6a6730812220a9a5ce4003eb347da1ee5abd06b0 - () https://git.kernel.org/stable/c/6a6730812220a9a5ce4003eb347da1ee5abd06b0 - Patch
References () https://git.kernel.org/stable/c/7d3b793faaab1305994ce568b59d61927235f57b - () https://git.kernel.org/stable/c/7d3b793faaab1305994ce568b59d61927235f57b - Patch
First Time Linux linux Kernel
Linux

05 Sep 2024, 12:53

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: serial: sc16is7xx: se corrige el acceso FIFO no válido con un conjunto de registros especiales. Al habilitar el acceso al conjunto de registros especiales, pueden producirse interrupciones de RHR y tiempo de espera del receptor. En este caso, el controlador IRQ intentará leer desde el FIFO a través del registro RHR en la dirección 0x00, pero la dirección 0x00 está asignada al registro DLL, lo que da como resultado una lectura FIFO errónea. Ejemplo de gráfico de llamadas: sc16is7xx_startup(): entrada sc16is7xx_ms_proc(): entrada sc16is7xx_set_termios(): entrada sc16is7xx_set_baud(): DLH/DLL = $009C --> acceder al conjunto de registros especiales sc16is7xx_port_irq() entrada --> IIR es 0x0C sc16is7xx_handle_rx() entrada sc16is7xx_fifo_read(): --> no se puede acceder a FIFO (RHR) porque está asignado a DLL (LCR=LCR_CONF_MODE_A) sc16is7xx_set_baud(): salida --> Restaurar el acceso al conjunto de registros generales Solucione el problema reclamando el mutex efr_lock al acceder al conjunto de registros especiales.

04 Sep 2024, 19:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-09-04 19:15

Updated : 2024-10-09 14:21


NVD link : CVE-2024-44950

Mitre link : CVE-2024-44950

CVE.ORG link : CVE-2024-44950


JSON object : View

Products Affected

linux

  • linux_kernel