CVE-2025-39724

In the Linux kernel, the following vulnerability has been resolved: serial: 8250: fix panic due to PSLVERR When the PSLVERR_RESP_EN parameter is set to 1, the device generates an error response if an attempt is made to read an empty RBR (Receive Buffer Register) while the FIFO is enabled. In serial8250_do_startup(), calling serial_port_out(port, UART_LCR, UART_LCR_WLEN8) triggers dw8250_check_lcr(), which invokes dw8250_force_idle() and serial8250_clear_and_reinit_fifos(). The latter function enables the FIFO via serial_out(p, UART_FCR, p->fcr). Execution proceeds to the serial_port_in(port, UART_RX). This satisfies the PSLVERR trigger condition. When another CPU (e.g., using printk()) is accessing the UART (UART is busy), the current CPU fails the check (value & ~UART_LCR_SPAR) == (lcr & ~UART_LCR_SPAR) in dw8250_check_lcr(), causing it to enter dw8250_force_idle(). Put serial_port_out(port, UART_LCR, UART_LCR_WLEN8) under the port->lock to fix this issue. Panic backtrace: [ 0.442336] Oops - unknown exception [#1] [ 0.442343] epc : dw8250_serial_in32+0x1e/0x4a [ 0.442351] ra : serial8250_do_startup+0x2c8/0x88e ... [ 0.442416] console_on_rootfs+0x26/0x70
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:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

Configuration 2 (hide)

cpe:2.3:o:debian:debian_linux:11.0:*:*:*:*:*:*:*

History

19 Oct 2026, 21:10

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: serial: 8250: corrección de pánico debido a PSLVERR Cuando el parámetro PSLVERR_RESP_EN se establece en 1, el dispositivo genera una respuesta de error si se intenta leer un RBR (Receive Buffer Register) vacío mientras el FIFO está habilitado. En serial8250_do_startup(), la llamada a serial_port_out(port, UART_LCR, UART_LCR_WLEN8) activa dw8250_check_lcr(), que invoca dw8250_force_idle() y serial8250_clear_and_reinit_fifos(). Esta última función habilita el FIFO a través de serial_out(p, UART_FCR, p->fcr). La ejecución continúa hasta el serial_port_in(port, UART_RX). Esto satisface la condición de activación de PSLVERR. Cuando otra CPU (por ejemplo, usando printk()) está accediendo a la UART (la UART está ocupada), la CPU actual falla la verificación (value & ~UART_LCR_SPAR) == (lcr & ~UART_LCR_SPAR) en dw8250_check_lcr(), lo que hace que entre en dw8250_force_idle(). Colocar serial_port_out(port, UART_LCR, UART_LCR_WLEN8) bajo el port->lock para solucionar este problema. Rastreo de pánico: [ 0.442336] Oops - excepción desconocida [#1] [ 0.442343] epc : dw8250_serial_in32+0x1e/0x4a [ 0.442351] ra : serial8250_do_startup+0x2c8/0x88e ... [ 0.442416] console_on_rootfs+0x26/0x70

Information

Published : 2025-09-05 18:15

Updated : 2026-11-05 22:17


NVD link : CVE-2025-39724

Mitre link : CVE-2025-39724

CVE.ORG link : CVE-2025-39724


JSON object : View

Products Affected

debian

  • debian_linux

linux

  • linux_kernel