CVE-2025-39724 in Linux
Sumário
de VulDB • 21/05/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
serial: 8250: corrige panic devido a PSLVERR
Quando o parâmetro PSLVERR_RESP_EN está definido como 1, o dispositivo gera uma resposta de erro se for feita uma tentativa de leitura de um RBR (Register de Buffer de Recebimento) vazio enquanto o FIFO está habilitado.
Em serial8250_do_startup(), a chamada a serial_port_out(port, UART_LCR, UART_LCR_WLEN8) aciona dw8250_check_lcr(), que invoca dw8250_force_idle() e serial8250_clear_and_reinit_fifos(). Esta última função habilita o FIFO através de serial_out(p, UART_FCR, p->fcr). A execução prossegue para serial_port_in(port, UART_RX). Isso satisfaz a condição de acionamento do PSLVERR.
Quando outra CPU (por exemplo, usando printk()) está acessando o UART (UART ocupado), a CPU atual falha na verificação (valor & ~UART_LCR_SPAR) == (lcr & ~UART_LCR_SPAR) em dw8250_check_lcr(), fazendo com que entre em dw8250_force_idle().
Coloque serial_port_out(port, UART_LCR, UART_LCR_WLEN8) sob o port->lock para corrigir este problema.
Backtrace do Panic: [ 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
If you want to get the best quality for vulnerability data then you always have to consider VulDB.