CVE-2022-48669
📋 TL;DR
This is a memory leak vulnerability in the Linux kernel's powerpc/pseries subsystem. When krealloc() fails in papr_get_attr(), the originally allocated buffer isn't freed, causing gradual memory exhaustion. This affects Linux systems running on PowerPC architecture with pSeries platform support.
💻 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 →⚠️ Risk & Real-World Impact
Worst Case
Sustained exploitation could lead to kernel memory exhaustion, causing system instability, denial of service, or potential kernel crashes.
Likely Case
Gradual memory consumption over time leading to performance degradation and eventual system instability requiring reboot.
If Mitigated
Minimal impact with proper monitoring and memory limits in place, though still represents resource waste.
🎯 Exploit Status
Exploitation requires triggering the specific code path in papr_get_attr() with conditions that cause krealloc() to fail. Likely requires local access or another vulnerability to reach this code.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Multiple stable kernel versions with commits: 1699fb915b9f, 7f7d39fe3d80d, a3f22feb2220a, cda9c0d556283e, d0647c3e81eff62
Vendor Advisory: https://git.kernel.org/stable/c/1699fb915b9f61794d559b55114c09a390aaf234
Restart Required: Yes
Instructions:
1. Update Linux kernel to version containing the fix commits. 2. Check with your distribution for backported patches. 3. Reboot system after kernel update.
🔧 Temporary Workarounds
Memory monitoring and limits
linuxImplement strict memory monitoring and limits to detect and prevent memory exhaustion
Set kernel memory limits via cgroups: echo 'memory.max=4G' > /sys/fs/cgroup/memory/group/memory.max
Monitor memory usage: watch -n 1 'cat /proc/meminfo | grep -E "MemFree|MemAvailable"'
🧯 If You Can't Patch
- Implement aggressive memory monitoring with alerts for unusual consumption patterns
- Restrict access to systems to prevent local users from potentially triggering the vulnerability
🔍 How to Verify
Check if Vulnerable:
Check kernel version and architecture: uname -r && uname -m. If PowerPC architecture and kernel version predates fix commits, system may be vulnerable.
Check Version:
uname -r
Verify Fix Applied:
Verify kernel version includes fix commits: grep -r 'papr_get_attr' /proc/kallsyms && check kernel changelog for fix commits
📡 Detection & Monitoring
Log Indicators:
- Kernel oom-killer messages in /var/log/messages or dmesg
- Unusual memory consumption patterns in system logs
- Kernel panic logs related to memory exhaustion
Network Indicators:
- None - this is a local memory management issue
SIEM Query:
source="kernel" AND ("out of memory" OR "oom-killer" OR "kernel panic") AND NOT expected_memory_event
🔗 References
- https://git.kernel.org/stable/c/1699fb915b9f61794d559b55114c09a390aaf234
- https://git.kernel.org/stable/c/7f7d39fe3d80d6143404940b2413010cf6527029
- https://git.kernel.org/stable/c/a3f22feb2220a945d1c3282e34199e8bcdc5afc4
- https://git.kernel.org/stable/c/cda9c0d556283e2d4adaa9960b2dc19b16156bae
- https://git.kernel.org/stable/c/d0647c3e81eff62b66d46fd4e475318cb8cb3610
- https://git.kernel.org/stable/c/1699fb915b9f61794d559b55114c09a390aaf234
- https://git.kernel.org/stable/c/7f7d39fe3d80d6143404940b2413010cf6527029
- https://git.kernel.org/stable/c/a3f22feb2220a945d1c3282e34199e8bcdc5afc4
- https://git.kernel.org/stable/c/cda9c0d556283e2d4adaa9960b2dc19b16156bae
- https://git.kernel.org/stable/c/d0647c3e81eff62b66d46fd4e475318cb8cb3610