Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

redhat логотип

CVE-2024-44950

Опубликовано: 04 сент. 2024
Источник: redhat
CVSS3: 5.6
EPSS Низкий

Описание

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.

A flaw was found in the Linux kernel's sc16is7xx serial driver. A race condition occurs when the driver accesses special register sets without proper locking while interrupt handling is active. This can cause the interrupt handler to read from an incorrectly mapped register instead of the intended First-In, First-Out (FIFO) buffer. A local user could exploit this flaw to cause data corruption or a Denial of Service (DoS).

Отчет

A MODERATE severity race condition flaw was found in the Linux kernel sc16is7xx serial driver. When the driver enables access to the device's special register set to program the baud rate divisor (DLL/DLH) registers, a receiver time-out or RHR interrupt can fire during this window. The interrupt handler then reads the receive FIFO through the RHR register at address 0x00, which is remapped to the DLL register while the special register set is enabled, resulting in an erroneous FIFO read. A local user able to trigger this race could cause data corruption or a denial of service on the affected serial port. Red Hat Enterprise Linux 6, 7, 8, and 9 (kernel and kernel-rt) are not affected by this flaw; the affected Red Hat product scope is limited to Fedora, where the fix is delegated to the community kernel maintainers. Red Hat rates this flaw MODERATE with a CVSS 3.1 score of 5.6 (AV:L/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:H). This differs from the CVE.org score of 7.1 because Red Hat's scoring reflects that exploitation requires highly privileged local access, whereas the CVE.org vector assumes low privileges.

Меры по смягчению последствий

Mitigation for this issue is either not available or the currently available options do not meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base, or stability.

Затронутые пакеты

ПлатформаПакетСостояниеРекомендацияРелиз
Red Hat Enterprise Linux 6kernelNot affected
Red Hat Enterprise Linux 7kernelNot affected
Red Hat Enterprise Linux 7kernel-rtNot affected
Red Hat Enterprise Linux 8kernelNot affected
Red Hat Enterprise Linux 8kernel-rtNot affected
Red Hat Enterprise Linux 9kernelNot affected
Red Hat Enterprise Linux 9kernel-rtNot affected

Показывать по

Дополнительная информация

Статус:

Moderate
Дефект:
CWE-668
https://bugzilla.redhat.com/show_bug.cgi?id=2309781kernel: serial: sc16is7xx: fix invalid FIFO access with special register set

EPSS

Процентиль: 13%
0.00227
Низкий

5.6 Medium

CVSS3

Связанные уязвимости

CVSS3: 5.5
ubuntu
около 2 лет назад

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.

CVSS3: 5.5
nvd
около 2 лет назад

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 s

CVSS3: 5.5
msrc
9 месяцев назад

serial: sc16is7xx: fix invalid FIFO access with special register set

CVSS3: 5.5
debian
около 2 лет назад

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

CVSS3: 5.5
github
около 2 лет назад

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 registe...

EPSS

Процентиль: 13%
0.00227
Низкий

5.6 Medium

CVSS3