CVE-2026-53331 Details
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.
A locking vulnerability has been identified in the Linux kernel's Slimbus controller management, specifically within the Qualcomm NGD control driver. During the Subsystem Shutdown and Power Down notification process, a transmission lock is acquired to synchronize with active Direct Memory Access (DMA) transfers. However, this period coincides with the invocation of a function that reports the controller as absent, which requires a different lock. This mismatch in lock acquisition order can lead to a deadlock scenario, where one part of the process holds a lock that the other part is trying to acquire, causing a standstill in execution. The issue arises because the transmission lock is not released before the controller lock is requested, creating a circular dependency that can halt the system's operation.
The vulnerability has been addressed by modifying the notification process to avoid acquiring the transmission lock, thus preventing the deadlock. Users should update to the latest version of the Linux kernel where this fix has been applied.
Metrics
CVSS 4.0 Severity and Vector Strings:
No CVSS 4.0 data is available for this CVE.
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
No SSVC data is available for this CVE.
References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://git.kernel.org/stable/c/3d1561537237c6cc1db76155183d8bbdac2339f0 | kernel.org | Patch |
| https://git.kernel.org/stable/c/55f2ea9ff83cc27a85526b14bc9b32f96a08d6ec | kernel.org | Patch |
| https://git.kernel.org/stable/c/9708eb50fd7343145b422be852f890212155d845 | kernel.org | Patch |
| https://git.kernel.org/stable/c/9f0d45d509b434c54da10e01f4ef8086e4583401 | kernel.org | Patch |
| https://git.kernel.org/stable/c/aad4337a21b9ad3ae8d668fa8678d05e26ecbaa8 | kernel.org | Patch |
| https://git.kernel.org/stable/c/d54a221b0f3cd9e1f03f18104be34e02a8258fae | kernel.org | Patch |
| https://git.kernel.org/stable/c/dc4d5c57e012c2c669793deb1515a57bbc6bf5dd | kernel.org | Patch |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| NVD-CWE-noinfo | Insufficient Information to Classify Weakness | [email protected] |
Affected Products
| Product | Versions |
|---|---|
| linux linux kernel | >= 5.11, < 5.15.210 >= 5.16, < 6.1.176 >= 6.2, < 6.6.143 >= 6.7, < 6.12.94 >= 6.13, < 6.18.36 >= 6.19, < 7.0.13 7.1 rc1 7.1 rc2 7.1 rc3 7.1 rc4 7.1 rc5 7.1 rc6 7.1 rc7 |
CPE
Remediation
| |
Change History
2 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Jul 23, 2026 | Initial Analysis | [email protected] |
| Jul 1, 2026 | New CVE Received | kernel.org |