CVE-2026-53331: Linux Kernel SlimBus Deadlock Vulnerability
CVE-2026-53331 is a kernel-level deadlock vulnerability in the Linux kernel's Qualcomm SlimBus controller driver. The issue occurs when the system undergoes subsystem restart (SSR) or processor domain restart (PDR) events. During these restart procedures, the driver acquires a transmit lock to protect ongoing DMA transfers, but then attempts to acquire a separate controller lock in a different order than other code paths. This lock ordering inconsistency can cause the system to deadlock, where one thread holds the transmit lock while waiting for the controller lock that another thread already holds while waiting for the transmit lock. The vulnerability has a medium severity rating and could lead to system availability disruptions.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 5.5 MEDIUM · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
- Weaknesses (CWE)
- —
- Affected products
- 8 configuration(s)
- Published / Modified
- 2026-07-01 / 2026-07-23
NVD description (verbatim)
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.
7 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability exists in drivers/slimbus/qcom-ngd-ctrl.c within the qcom_slim_ngd_ssr_pdr_notify() function. During SSR/PDR down notification, the function acquires ctrl->tx_lock to synchronize with active DMA transfers. However, the code then calls qcom_slim_ngd_down(), which eventually invokes slim_report_absent() in the core SlimBus driver—a function that requires ctrl->lock. Throughout the codebase, these two locks are typically acquired in the opposite order (ctrl->lock first, then tx_lock), creating a classic ABBA deadlock scenario. The lockdep verification system detects this potential circular wait condition. The fix removes the unnecessary tx_lock acquisition in qcom_slim_ngd_ssr_pdr_notify(), since the transmit lock's stated purpose—preventing calls to qcom_slim_ngd_exit_dma() during active DMA transactions—is already naturally prevented by the fact that DMA transactions complete within single qcom_slim_ngd_xfer_msg() calls before the controller teardown sequence begins.
Business impact
This vulnerability can cause kernel panics or system hangs during subsystem or processor domain restart events, which are critical operational scenarios particularly in mobile and embedded systems using Qualcomm platforms. An affected system could become unresponsive during firmware update procedures, device resets, or modem restarts—common maintenance operations. The impact is availability-focused; there is no data confidentiality or integrity breach. For organizations operating infrastructure with affected Qualcomm-based devices, remediation is important to maintain system stability during normal lifecycle operations, though the triggering conditions are relatively specific to restart events rather than continuous runtime exposure.
Affected systems
Linux kernel installations containing the affected Qualcomm SlimBus NGD (Next Generation Device) controller driver code. This primarily affects mobile devices, IoT devices, and embedded systems using Qualcomm chipsets where the qcom-ngd-ctrl driver is compiled in. The vulnerability is present in kernel versions containing the affected code path; however, the specific kernel versions have not been enumerated in the provided vulnerability data. Systems must be verified against the Linux kernel source repository and relevant vendor advisories to determine exact affected ranges.
Exploitability
Exploitability is low to moderate in practical terms. The vulnerability is triggered during legitimate system operations (SSR/PDR events), not via direct user interaction or network attack. An attacker cannot remotely trigger a deadlock; it occurs only when the system naturally undergoes restart procedures. A local user with sufficient privilege to trigger or monitor system restart events could potentially observe or influence the timing of the deadlock condition, but exploitation requires system-level access and the specific hardware/firmware restart conditions. The vulnerability is more accurately characterized as a reliability bug that impacts availability under normal operational circumstances rather than a traditional security exploit vector.
Remediation
Apply kernel updates that include the fix for CVE-2026-53331. The resolution involves removing the unnecessary tx_lock acquisition in the qcom_slim_ngd_ssr_pdr_notify() function. Organizations should verify the exact kernel versions containing the fix through the Linux kernel source repository and coordinate updates with their device manufacturer, as kernel updates may require testing and coordination with system-specific configurations. No workaround is available; patching is the only remediation path.
Patch guidance
Identify your current Linux kernel version using 'uname -r' or equivalent commands. Consult the Linux kernel source repository at kernel.org and your device manufacturer's security advisories for kernel versions that include the fix for drivers/slimbus/qcom-ngd-ctrl.c. Test any kernel updates in a non-production environment first to ensure compatibility with dependent systems and services. Because this fix is in the SlimBus controller driver, it is most critical for systems that actively use SlimBus for audio or other device communication—typically mobile and embedded platforms. Verify against vendor advisory documentation for exact patch versions and timelines applicable to your environment.
Detection guidance
Monitor system logs for lockdep warnings or deadlock messages mentioning 'ctrl->lock' and 'ctrl->tx_lock' in the context of qcom_slim_ngd or SlimBus code. Kernel panic logs or hung task warnings during SSR/PDR events may indicate this condition. Use CONFIG_PROVE_LOCKING kernel configuration to enable lockdep verification, which will detect the lock ordering violation at runtime. Test kernel updates in staging environments with SSR/PDR simulation to confirm the issue is resolved before full deployment.
Why prioritize this
While this vulnerability carries a MEDIUM CVSS score (5.5), it should be prioritized based on your system environment. Prioritize immediately if your infrastructure relies on Qualcomm-based mobile or embedded devices that undergo regular restart cycles or firmware updates, as deadlocks during these operations disrupt availability. For server-centric or non-Qualcomm deployments, this vulnerability is lower priority. The fix is surgical (removal of problematic lock acquisition) and low-risk, making patching feasible once updated kernels are available from your vendor.
Risk score, explained
The CVSS 3.1 score of 5.5 (MEDIUM) reflects an attack vector of local only (AV:L), low complexity (AC:L), low privilege requirements (PR:L), no user interaction (UI:N), unchanged scope (S:U), and high availability impact (A:H). The scoring appropriately captures that this is a local denial-of-service vulnerability with no confidentiality or integrity impact. The score does not account for the relatively narrow triggering conditions (SSR/PDR events), which in practice limit exploitability compared to vulnerabilities triggered during normal operation, but the availability impact during those events is complete.
Frequently asked questions
What devices are affected by CVE-2026-53331?
The vulnerability affects Linux kernel installations on devices using the Qualcomm SlimBus NGD controller driver. This includes many mobile devices, some IoT platforms, and embedded systems with Qualcomm chipsets. The specific affected device models depend on their kernel version and driver configuration. Check with your device manufacturer for confirmation of whether your devices are affected and when updates will be available.
Does this vulnerability allow remote attacks?
No. CVE-2026-53331 is a local denial-of-service vulnerability that cannot be exploited remotely. It requires local system access and is triggered during legitimate system restart operations. It cannot be weaponized for remote code execution or unauthorized access.
What is the difference between SSR and PDR that triggers this issue?
SSR (Subsystem Restart) and PDR (Processor Domain Restart) are Qualcomm mechanisms for recovering failed subsystems or processor domains without requiring a full system reboot. Examples include modem crashes, processor restarts, or firmware updates. During these events, drivers must safely shut down and reinitialize communication. This vulnerability manifests during these normal operational recovery sequences.
Can I work around this vulnerability without patching?
Unfortunately, no workaround exists. The fix requires kernel code changes to the SlimBus driver. You must obtain and deploy a patched kernel version from your device manufacturer or the Linux kernel project. Mitigation is not possible at the application or configuration level.
This analysis is based on vulnerability data available as of the publication date. Specific affected kernel versions, patch versions, and device models must be verified against official Linux kernel advisories and device manufacturer security bulletins. Organizations should test all patches in non-production environments before deployment. This vulnerability analysis is provided for informational purposes and does not constitute professional security advice specific to any organization's infrastructure or risk profile. Source: NVD (public-domain), retrieved 2026-08-10. Analysis generated by SEC.co (claude-haiku-4-5).
Affected vendors
Related vulnerabilities
- CVE-2025-36372MEDIUMIBM Db2 Information Disclosure in Monitoring Tables
- CVE-2025-71313MEDIUMLinux Kernel PCI Endpoint NULL Pointer Dereference
- CVE-2025-71314MEDIUMLinux Panthor GPU Driver Denial of Service via Cache Flush Timeout
- CVE-2025-71315MEDIUMLinux Kernel vkms DRM Vblank Timer Denial of Service
- CVE-2026-0268MEDIUMPrisma Access Agent Linux VPN Bypass Vulnerability
- CVE-2026-10004MEDIUMChrome UI Spoofing Vulnerability – Password Dialog Hijacking
- CVE-2026-10018MEDIUMInteger Overflow in Chrome ANGLE GPU Graphics Layer
- CVE-2026-10912MEDIUMChrome Extension Same-Origin Policy Bypass (CVSS 6.5)