CVE-2022-48669

5.5 MEDIUM

📋 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

Products:
  • Linux kernel
Versions: Specific affected versions not explicitly stated, but based on commit history likely affects multiple stable branches before fixes were backported
Operating Systems: Linux distributions running on PowerPC pSeries platforms
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects systems with PowerPC architecture using pSeries platform support. x86_64 and other architectures are not affected.

📦 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.

🌐 Internet-Facing: LOW - Requires local access or ability to trigger the vulnerable code path through other means.
🏢 Internal Only: MEDIUM - Could be exploited by local users or through other vulnerabilities to degrade system performance.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

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

linux

Implement 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

📤 Share & Export