Skip to content
Heist/ feed
Back to feed
UnratedFix available

tty: xilinx_uartps: split sysrq handling

Type: advisorySources: OSV

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.

Products
Kernel
Affected versions
Not specified
Fixed versions
5.15.179, 6.1.129, 6.12.14, 6.13.3, 6.6.78
CVEs
CVE-2025-21820
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 02:53 UTC · Revision 1

Source evidence

tty: xilinx_uartps: split sysrq handling

core-osv · Original source

Published 27 Feb 2025, 20:04 UTC

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.

osv:CVE-2025-21820

Kernel

Fixed versions: 5.15.179, 6.1.129, 6.6.78, 6.12.14, 6.13.3

Complete source record
{
  "id": "d16d87336d3957f6f6af89c8be20a8bb8017af44aa1d6547078b81da530402f5",
  "url": "https://osv.dev/vulnerability/CVE-2025-21820",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "tty: xilinx_uartps: split sysrq handling",
    "summary": "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.",
    "evidence": "osv:CVE-2025-21820",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "5.15.179",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.1.129",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.6.78",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.14",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.13.3",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "CVE-2025-21820",
      "aliases": [
        "CVE-2025-21820"
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "74ea66d4ca061a3cd4c0e924e51b60e924644852"
                },
                {
                  "fixed": "e22a97700901ba5e8bf8db68056a0d50f9440cae"
                },
                {
                  "fixed": "de5bd24197bd9ee37ec1e379a3d882bbd15c5065"
                },
                {
                  "fixed": "8ea0e7b3d7b8f2f0fc9db491ff22a0abe120801c"
                },
                {
                  "fixed": "9b88a7c4584ba67267a051069b8abe44fc9595b2"
                },
                {
                  "fixed": "4410dba9807a17a93f649a9f5870ceaf30a675a3"
                },
                {
                  "fixed": "b06f388994500297bb91be60ffaf6825ecfd2afe"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-21820.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "4.6.0"
                },
                {
                  "fixed": "5.15.179"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.16.0"
                },
                {
                  "fixed": "6.1.129"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.2.0"
                },
                {
                  "fixed": "6.6.78"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.12.14"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.13.3"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-21820.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:32.853172651Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/4410dba9807a17a93f649a9f5870ceaf30a675a3",
        "https://git.kernel.org/stable/c/8ea0e7b3d7b8f2f0fc9db491ff22a0abe120801c",
        "https://git.kernel.org/stable/c/9b88a7c4584ba67267a051069b8abe44fc9595b2",
        "https://git.kernel.org/stable/c/b06f388994500297bb91be60ffaf6825ecfd2afe",
        "https://git.kernel.org/stable/c/de5bd24197bd9ee37ec1e379a3d882bbd15c5065",
        "https://git.kernel.org/stable/c/e22a97700901ba5e8bf8db68056a0d50f9440cae",
        "https://lists.debian.org/debian-lts-announce/2025/03/msg00028.html",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/21xxx/CVE-2025-21820.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2025-21820",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/21xxx/CVE-2025-21820.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2025-21820",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 499808,
  "published_at": "2025-02-27T20:04:17.93+00:00"
}