CVE-2022-50278
📋 TL;DR
This CVE describes a memory leak vulnerability in the Linux kernel's PNP subsystem. When the pnp_alloc_dev() function fails after device name allocation, the dynamically allocated name memory isn't properly freed, leading to kernel memory exhaustion over time. This affects all Linux systems using the PNP subsystem.
💻 Affected Systems
- Linux kernel
📦 What is this software?
Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →⚠️ Risk & Real-World Impact
Worst Case
Sustained exploitation could lead to kernel memory exhaustion, causing system instability, denial of service, or potential kernel panic/crash.
Likely Case
Gradual memory leak leading to degraded system performance over time, potentially requiring system reboot to recover memory.
If Mitigated
With proper monitoring and memory limits, impact is limited to performance degradation rather than complete system failure.
🎯 Exploit Status
Exploitation requires triggering the specific failure condition in pnp_alloc_dev() repeatedly to cause memory exhaustion.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Fixed in kernel commits: 110d7b0325c55ff3620073ba4201845f59e22ebf, 1f50c7497a5f89de0c31f2edf086af41ff834320, 290dd73b943c95c006df973257076ff163adf4d0, 693a0c13c1f0c0fcaa1e38cb806cc0789bd415aa, 81b024df4755e6bb6993b786584eca6eabbb9791
Vendor Advisory: https://git.kernel.org/stable/c/110d7b0325c55ff3620073ba4201845f59e22ebf
Restart Required: Yes
Instructions:
1. Update Linux kernel to version containing the fix commits. 2. Reboot system to load new kernel. 3. Verify kernel version after reboot.
🔧 Temporary Workarounds
Disable PNP subsystem
LinuxDisable the PNP subsystem if not required for your hardware configuration
echo "blacklist pnp" > /etc/modprobe.d/blacklist-pnp.conf
update-initramfs -u
reboot
🧯 If You Can't Patch
- Implement kernel memory monitoring and alerting for unusual memory consumption patterns
- Restrict user/process access to PNP device operations through SELinux/AppArmor policies
🔍 How to Verify
Check if Vulnerable:
Check kernel version and compare with affected commit range: uname -r && git log --oneline | grep -E "(110d7b0|1f50c74|290dd73|693a0c1|81b024d)"
Check Version:
uname -r
Verify Fix Applied:
Verify kernel version includes fix commits: uname -r && zgrep -E "(110d7b0325c55ff3620073ba4201845f59e22ebf|1f50c7497a5f89de0c31f2edf086af41ff834320|290dd73b943c95c006df973257076ff163adf4d0|693a0c13c1f0c0fcaa1e38cb806cc0789bd415aa|81b024df4755e6bb6993b786584eca6eabbb9791)" /proc/config.gz
📡 Detection & Monitoring
Log Indicators:
- Kernel oom-killer messages
- Memory allocation failures in dmesg
- PNP subsystem error messages
Network Indicators:
- None - this is a local kernel vulnerability
SIEM Query:
source="kernel" AND ("out of memory" OR "oom-killer" OR "pnp_alloc_dev" OR "memory allocation failure")
🔗 References
- https://git.kernel.org/stable/c/110d7b0325c55ff3620073ba4201845f59e22ebf
- https://git.kernel.org/stable/c/1f50c7497a5f89de0c31f2edf086af41ff834320
- https://git.kernel.org/stable/c/290dd73b943c95c006df973257076ff163adf4d0
- https://git.kernel.org/stable/c/693a0c13c1f0c0fcaa1e38cb806cc0789bd415aa
- https://git.kernel.org/stable/c/81b024df4755e6bb6993b786584eca6eabbb9791
- https://git.kernel.org/stable/c/bbcf772216aa237036cc3ae3158288d0a95aaf4d
- https://git.kernel.org/stable/c/c12b314bb23dc0c83e03402cc84574700947e3b2
- https://git.kernel.org/stable/c/dac87e295cddc8ab316cff14ab2071b5221d84fa
- https://git.kernel.org/stable/c/ea77b4b761cd75e5456f677311babfa0418f289a