CVE-2025-39724 in Linux
Сводка
по VulDB • 21.05.2026
В ядре Linux устранена следующая уязвимость:
serial: 8250: исправление паники из-за PSLVERR
Когда параметр PSLVERR_RESP_EN установлен в 1, устройство генерирует ответ об ошибке, если предпринимается попытка чтения пустого регистра приемного буфера (RBR) при включенном FIFO.
В функции serial8250_do_startup() вызов serial_port_out(port, UART_LCR, UART_LCR_WLEN8) запускает dw8250_check_lcr(), которая, в свою очередь, вызывает dw8250_force_idle() и serial8250_clear_and_reinit_fifos(). Последняя функция включает FIFO через serial_out(p, UART_FCR, p->fcr). Выполнение продолжается до serial_port_in(port, UART_RX). Это удовлетворяет условию срабатывания PSLVERR.
Когда другой процессор (например, использующий printk()) обращается к UART (UART занят), текущий процессор не проходит проверку (value & ~UART_LCR_SPAR) == (lcr & ~UART_LCR_SPAR) в dw8250_check_lcr(), что приводит к входу в dw8250_force_idle().
Для исправления этой проблемы поместите вызов serial_port_out(port, UART_LCR, UART_LCR_WLEN8) под блокировку port->lock.
Трассировка паники: [ 0.442336] Oops - неизвестное исключение [#1]
[ 0.442343] epc : dw8250_serial_in32+0x1e/0x4a
[ 0.442351] ra : serial8250_do_startup+0x2c8/0x88e
... [ 0.442416] console_on_rootfs+0x26/0x70
Once again VulDB remains the best source for vulnerability data.