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

slimbus: qcom-ngd-ctrl: Avoid ABBA on tx_lock/ctrl->lock

During the SSR/PDR down notification the tx_lock is taken with the
intent to provide synchronization with active DMA transfers.

But during this period qcom_slim_ngd_down() is invoked, which ends up in
slim_report_absent(), which takes the slim_controller lock. In multiple
other codepaths these two locks are taken in the opposite order (i.e.
slim_controller then tx_lock).

The result is a lockdep splat, and a possible deadlock:

rprocctl/449 is trying to acquire lock:
ffff00009793e620 (&ctrl->lock){+.+.}-{4:4}, at: slim_report_absent (drivers/slimbus/core.c:322) slimbus

but task is already holding lock:
ffff00009793fb50 (&ctrl->tx_lock){+.+.}-{4:4}, at: qcom_slim_ngd_ssr_pdr_notify (drivers/slimbus/qcom-ngd-ctrl.c:1475) slim_qcom_ngd_ctrl

which lock already depends on the new lock.

Possible unsafe locking scenario:

CPU0 CPU1
---- ----
lock(&ctrl->tx_lock);
lock(&ctrl->lock);
lock(&ctrl->tx_lock);
lock(&ctrl->lock);

The assumption is that the comment refers to the desire to not call
qcom_slim_ngd_exit_dma() while we have an ongoing DMA TX transaction.
But any such transaction is initiated and completed within a single
qcom_slim_ngd_xfer_msg().

Prior to calling qcom_slim_ngd_exit_dma() the slim_controller is torn
down, all child devices are notified that the slimbus is gone and the
child devices are removed.

Stop taking the tx_lock in qcom_slim_ngd_ssr_pdr_notify() to avoid the
deadlock.
Published: 2026-07-01
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The flaw is a lock ordering problem (CWE‑833) in the qcom‑ngd slimbus driver. During a Server‑Side Reset or PDR down notification, the driver acquires tx_lock before the controller lock while other parts of the code grab the controller lock first. This inversion can trigger a lockdep violation and, if the two locks are acquired simultaneously on different CPUs, lead to a deadlock that stalls the kernel and renders the system unresponsive. The bug does not provide a way to read or modify data, so its primary impact is a denial‑of‑service via kernel hang.

Affected Systems

The vulnerability affects any Linux kernel that includes the slimbus subsystem with the qcom‑ngd driver and has not yet applied the patch that removes the tx_lock acquisition in qcom_slim_ngd_ssr_pdr_notify. This includes upstream kernels and any distribution kernels built from these sources. Devices using Qualcomm chipset controllers that rely on this driver are therefore impacted.

Risk and Exploitability

Based on the description, it is inferred that an attacker would need to trigger a Server‑Side Reset or PDR down notification while a DMA transfer is in progress, a condition that may only be achievable by privileged kernel code or a malicious driver. The EPSS score, reported as less than 1 %, and the absence from the CISA KEV catalog suggest a low likelihood of exploitation. If the vulnerability were exploited, the outcome would be a deadlock that could stall the kernel, causing a denial‑of‑service rather than providing code‑execution capabilities.

Generated by OpenCVE AI on July 21, 2026 at 14:47 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the updated Linux kernel that includes the fix that removes the tx_lock acquisition in qcom_slim_ngd_ssr_pdr_notify.
  • Reboot the system after applying the kernel update so the patched driver is loaded into memory.
  • If a kernel upgrade cannot be performed immediately, unload or disable the qcom_ngd slimbus driver to prevent it from attempting to acquire the conflicting locks, thereby eliminating the deadlock risk until the patch is available.

Generated by OpenCVE AI on July 21, 2026 at 14:47 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4665-1 linux security update
Debian DLA Debian DLA DLA-4671-1 linux-6.1 security update
History

Thu, 02 Jul 2026 04:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-663

Thu, 02 Jul 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-833
References
Metrics threat_severity

None

threat_severity

Moderate


Wed, 01 Jul 2026 20:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-663

Wed, 01 Jul 2026 13:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: slimbus: qcom-ngd-ctrl: Avoid ABBA on tx_lock/ctrl->lock During the SSR/PDR down notification the tx_lock is taken with the intent to provide synchronization with active DMA transfers. But during this period qcom_slim_ngd_down() is invoked, which ends up in slim_report_absent(), which takes the slim_controller lock. In multiple other codepaths these two locks are taken in the opposite order (i.e. slim_controller then tx_lock). The result is a lockdep splat, and a possible deadlock: rprocctl/449 is trying to acquire lock: ffff00009793e620 (&ctrl->lock){+.+.}-{4:4}, at: slim_report_absent (drivers/slimbus/core.c:322) slimbus but task is already holding lock: ffff00009793fb50 (&ctrl->tx_lock){+.+.}-{4:4}, at: qcom_slim_ngd_ssr_pdr_notify (drivers/slimbus/qcom-ngd-ctrl.c:1475) slim_qcom_ngd_ctrl which lock already depends on the new lock. Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&ctrl->tx_lock); lock(&ctrl->lock); lock(&ctrl->tx_lock); lock(&ctrl->lock); The assumption is that the comment refers to the desire to not call qcom_slim_ngd_exit_dma() while we have an ongoing DMA TX transaction. But any such transaction is initiated and completed within a single qcom_slim_ngd_xfer_msg(). Prior to calling qcom_slim_ngd_exit_dma() the slim_controller is torn down, all child devices are notified that the slimbus is gone and the child devices are removed. Stop taking the tx_lock in qcom_slim_ngd_ssr_pdr_notify() to avoid the deadlock.
Title slimbus: qcom-ngd-ctrl: Avoid ABBA on tx_lock/ctrl->lock
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-07-01T13:32:15.733Z

Reserved: 2026-06-09T07:44:35.398Z

Link: CVE-2026-53331

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-07-01T00:00:00Z

Links: CVE-2026-53331 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-07-21T15:00:09Z

Weaknesses