CVE-2021-47327: iommu/arm-smmu: Fix arm_smmu_device refcount leak when arm_smmu_rpm_get fails
In the Linux kernel, the following vulnerability has been resolved:
iommu/arm-smmu: Fix arm_smmu_device refcount leak when arm_smmu_rpm_get fails
arm_smmu_rpm_get() invokes pm_runtime_get_sync(), which increases the
refcount of the "smmu" even though the return value is less than 0.
The reference counting issue happens in some error handling paths of
arm_smmu_rpm_get() in its caller functions. When arm_smmu_rpm_get()
fails, the caller functions forget to decrease the refcount of "smmu"
increased by arm_smmu_rpm_get(), causing a refcount leak.
Fix this issue by calling pm_runtime_resume_and_get() instead of
pm_runtime_get_sync() in arm_smmu_rpm_get(), which can keep the refcount
balanced in case of failure.
Security readout for executives and security teams
Plain-English summary
CVE-2021-47327 is a Linux kernel bug in ARM SMMU power-management error handling. A failed runtime resume can leave a device reference count unbalanced, risking resource leakage and possible local confidentiality or availability impact. It matters most for Linux systems using affected ARM IOMMU/SMMU code paths.
Executive priority
Prioritize remediation for affected ARM Linux fleets where local users, workloads, or tenants can execute code. The business urgency is high for shared or multi-user systems, moderate for tightly controlled appliances pending vendor confirmation.
Technical view
arm_smmu_rpm_get() used pm_runtime_get_sync(), which increments the SMMU runtime PM refcount even when returning an error. Caller error paths did not drop that reference, causing a refcount leak. Stable fixes replace it with pm_runtime_resume_and_get() to keep reference counts balanced on failure.
Likely exposure
Exposure is likely limited to Linux systems running affected kernel builds with the ARM SMMU driver in use. The source lists Linux kernel version entries including 5.0, 5.4.134, 5.10.52, 5.12.19, 5.13.4, and 5.14, but distribution backports require vendor-specific checking.
Exploitation context
The CVSS vector is local, low complexity, low privilege, and no user interaction. The source bundle says KEV is false, and no provided source states active exploitation. Treat this as a local kernel risk, not a confirmed internet-exploited issue.
Researcher notes
Evidence supports a reference-count leak in ARM SMMU runtime PM failure handling, classified as CWE-911 with CVSS 7.1. The provided sources identify stable kernel commits but do not establish exploit availability, affected distributions, or product-specific package names.
Mitigation direction
Upgrade to a kernel containing the referenced stable fixes.
Check Linux distribution advisories for backported fixes.
Prioritize ARM systems using SMMU/IOMMU functionality.
Track vendor guidance if packaged kernel status is unclear.
Validation and detection
Inventory Linux kernel versions across ARM-based systems.
Confirm whether the ARM SMMU driver is built or loaded.
Map installed kernels to vendor fixed package versions.
Review kernel changelogs for the referenced stable commits.
Document systems needing reboot after kernel updates.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-911: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-911 · source CWE mapping
Improper Update of Reference Count
Improper Update of Reference Count represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.