CVE-2022-50510
📋 TL;DR
This CVE describes a memory leak vulnerability in the Linux kernel's ARM SMMU PMU driver. When platform_driver_register() fails during initialization, the driver doesn't properly clean up CPU hotplug callbacks, leading to resource leakage. This affects Linux systems with ARM SMMU hardware support.
💻 Affected Systems
- Linux kernel
⚠️ Risk & Real-World Impact
Worst Case
Sustained exploitation could lead to kernel memory exhaustion, causing system instability, crashes, or denial of service.
Likely Case
Memory leak during driver initialization failures, potentially causing resource exhaustion over time if initialization is repeatedly attempted.
If Mitigated
Minimal impact with proper monitoring and restart capabilities; memory leak only occurs during specific initialization failures.
🎯 Exploit Status
Exploitation requires local access, specific hardware, and triggering driver initialization failure conditions.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Kernel versions with commits 359286f886fe, 582babe17ea8, 6f2d566b4643, b131304fe722, or d69bdb61d577
Vendor Advisory: https://git.kernel.org/stable/c/359286f886feef38536eaa7e673dc3440f03b0a1
Restart Required: Yes
Instructions:
1. Update Linux kernel to patched version. 2. Reboot system. 3. Verify kernel version matches patched release.
🔧 Temporary Workarounds
Disable ARM SMMU PMU driver
linuxPrevent loading of vulnerable driver module
echo 'blacklist arm_smmu_pmu' >> /etc/modprobe.d/blacklist.conf
update-initramfs -u
reboot
🧯 If You Can't Patch
- Monitor kernel memory usage and system stability metrics
- Implement restart policies for systems showing memory exhaustion
🔍 How to Verify
Check if Vulnerable:
Check if ARM SMMU PMU driver is loaded: lsmod | grep arm_smmu_pmu and check kernel version against vulnerable ranges
Check Version:
uname -r
Verify Fix Applied:
Verify kernel version includes one of the fix commits and driver loads without issues
📡 Detection & Monitoring
Log Indicators:
- Kernel oops messages
- Driver initialization failures
- Memory allocation failures in kernel logs
Network Indicators:
- None - local vulnerability only
SIEM Query:
source="kernel" AND ("arm_smmu_pmu" OR "perf/smmuv3") AND ("failed" OR "error" OR "panic")
🔗 References
- https://git.kernel.org/stable/c/359286f886feef38536eaa7e673dc3440f03b0a1
- https://git.kernel.org/stable/c/582babe17ea878ec1d76f30e03f3a6ce6e30eb91
- https://git.kernel.org/stable/c/6f2d566b46436a50a80d6445e82879686b89588c
- https://git.kernel.org/stable/c/b131304fe722853cf26e55c4fa21fc58a36e7f21
- https://git.kernel.org/stable/c/d69bdb61d577297d3851fc9f6403574bf73ef41f
- https://git.kernel.org/stable/c/f245ca9a0fe7f794a8187ad803d5e2ced5a11cb2