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.
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.
Tracking
Sign in to view the affected projects.
Advisories
| Source | ID | Title |
|---|---|---|
Debian DLA |
DLA-4102-1 | linux-6.1 security update |
EUVD |
EUVD-2025-5974 | 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. |
Ubuntu USN |
USN-7510-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7510-2 | Linux kernel (FIPS) vulnerabilities |
Ubuntu USN |
USN-7510-3 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7510-4 | Linux kernel (Real-time) vulnerabilities |
Ubuntu USN |
USN-7510-5 | Linux kernel (Azure FIPS) vulnerabilities |
Ubuntu USN |
USN-7510-6 | Linux kernel (AWS FIPS) vulnerabilities |
Ubuntu USN |
USN-7510-7 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7510-8 | Linux kernel (AWS) vulnerabilities |
Ubuntu USN |
USN-7511-1 | Linux kernel (GCP) vulnerabilities |
Ubuntu USN |
USN-7511-2 | Linux kernel (GCP FIPS) vulnerabilities |
Ubuntu USN |
USN-7511-3 | Linux kernel (GKE) vulnerabilities |
Ubuntu USN |
USN-7512-1 | Linux kernel (GCP) vulnerabilities |
Ubuntu USN |
USN-7521-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7521-2 | Linux kernel (AWS) vulnerabilities |
Ubuntu USN |
USN-7521-3 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7593-1 | Linux kernel (HWE) vulnerabilities |
Ubuntu USN |
USN-7602-1 | Linux kernel (Xilinx ZynqMP) vulnerabilities |
Ubuntu USN |
USN-7651-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7651-2 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7651-3 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7651-4 | Linux kernel (GCP) vulnerabilities |
Ubuntu USN |
USN-7651-5 | Linux kernel (Raspberry Pi Real-time) vulnerabilities |
Ubuntu USN |
USN-7651-6 | Linux kernel (Raspberry Pi) vulnerabilities |
Ubuntu USN |
USN-7652-1 | Linux kernel (Real-time) vulnerabilities |
Ubuntu USN |
USN-7653-1 | Linux kernel (HWE) vulnerabilities |
Ubuntu USN |
USN-7737-1 | Linux kernel (Azure) vulnerabilities |
Fixes
Solution
No solution given by the vendor.
Workaround
No workaround given by the vendor.
References
History
Mon, 03 Nov 2025 21:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| References |
|
Thu, 13 Mar 2025 13:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Linux
Linux linux Kernel |
|
| Weaknesses | CWE-667 | |
| CPEs | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | |
| Vendors & Products |
Linux
Linux linux Kernel |
Thu, 13 Mar 2025 12:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| References |
|
Wed, 05 Mar 2025 04:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Weaknesses | CWE-833 |
Fri, 28 Feb 2025 14:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| References |
| |
| Metrics |
threat_severity
|
cvssV3_1
|
Thu, 27 Feb 2025 20:15:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | 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. | |
| Title | tty: xilinx_uartps: split sysrq handling | |
| References |
|
|
Status: PUBLISHED
Assigner: Linux
Published:
Updated: 2025-11-03T20:59:53.209Z
Reserved: 2024-12-29T08:45:45.775Z
Link: CVE-2025-21820
No data.
Status : Modified
Published: 2025-02-27T20:16:04.520
Modified: 2025-11-03T21:19:12.597
Link: CVE-2025-21820
OpenCVE Enrichment
No data.
Debian DLA
EUVD
Ubuntu USN