CVE-2025-21820

tty: xilinx_uartps: split sysrq handling

published February 27, 2025

CVSS
—
EPSS
0%
Percentile
5.4
In the wild
Unconfirmed
What it is

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

tty: xilinx_uartps: split sysrq handling

lockdep detects the following circular locking dependency:

CPU 0 CPU 1

========================== ============================

cdns_uart_isr() printk()

uart_port_lock(port) console_lock()

cdns_uart_console_write()

if (!port->sysrq)

uart_port_lock(port)

uart_handle_break()

port->sysrq = ...

uart_handle_sysrq_char()

printk()

console_lock()

The fixed commit attempts to avoid this situation by only taking the

port lock in cdns_uart_console_write if port->sysrq unset. However, if

(as shown above) cdns_uart_console_write runs before port->sysrq is set,

then it will try to take the port lock anyway. This may result in a

deadlock.

Fix this by splitting sysrq handling into two parts. We use the prepare

helper under the port lock and defer handling until we release the lock.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00165 · 5.4th percentile
Published
2025-02-27T20:04Z
EPSS history
Timeline
  • 27 FEB 20:04Z
    tty: xilinx_uartps: split sysrq handling
    cvelistv5