CVE-2022-48800

5.5 MEDIUM

📋 TL;DR

This CVE describes a deadlock vulnerability in the Linux kernel's memory management subsystem where kcompactd (kernel compaction daemon) can become stuck in a soft lockup condition. This occurs when memory reclaim throttling fails to make progress, preventing page migration and causing system instability. It affects Linux systems with specific kernel configurations, particularly those built without CONFIG_PREEMPT.

💻 Affected Systems

Products:
  • Linux kernel
Versions: Specific affected versions not explicitly stated in CVE, but patches exist for stable kernel trees. Likely affects multiple kernel versions before the fix.
Operating Systems: Linux distributions using vulnerable kernel versions
Default Config Vulnerable: ⚠️ Yes
Notes: Specifically affects CONFIG_PREEMPT=n builds (non-preemptive kernels). Requires specific memory pressure conditions with large amounts of isolated pages.

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

⚠️ Risk & Real-World Impact

🔴

Worst Case

System becomes completely unresponsive due to kernel soft lockup, requiring hard reboot and potentially causing data loss or corruption.

🟠

Likely Case

Degraded system performance, application failures due to memory allocation issues, and potential system hangs requiring intervention.

🟢

If Mitigated

Minor performance impact during memory pressure situations, with automatic recovery possible in some scenarios.

🌐 Internet-Facing: LOW - This is a local kernel vulnerability requiring local access or ability to trigger specific memory conditions.
🏢 Internal Only: MEDIUM - Could be triggered by legitimate applications under memory pressure or by malicious local users attempting to cause denial of service.

🎯 Exploit Status

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

Exploitation requires triggering specific memory management conditions and likely local access. No public exploit code referenced.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Patches available in stable kernel trees via git commits referenced in CVE

Vendor Advisory: https://git.kernel.org/stable/c/3980cff6349687f73d5109f156f23cb261c24164

Restart Required: Yes

Instructions:

1. Update Linux kernel to patched version from your distribution's repositories. 2. For custom kernels, apply patches from git.kernel.org. 3. Reboot system to load new kernel.

🔧 Temporary Workarounds

Enable swap space

linux

Adding swap space may reduce likelihood of triggering the deadlock by providing additional memory pressure relief.

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Add to /etc/fstab: /swapfile none swap sw 0 0

Memory pressure monitoring

linux

Monitor system memory usage and restart services before reaching critical memory pressure levels.

# Monitor memory usage regularly
watch -n 5 free -h
# Set up alerts for high memory usage

🧯 If You Can't Patch

  • Monitor system logs for 'soft lockup' messages and 'kcompactd' warnings
  • Implement aggressive memory usage limits on applications to prevent triggering conditions

🔍 How to Verify

Check if Vulnerable:

Check kernel version and configuration: uname -r and check if CONFIG_PREEMPT=n in kernel config

Check Version:

uname -r

Verify Fix Applied:

Verify kernel version is updated and check dmesg for absence of 'soft lockup' messages related to kcompactd

📡 Detection & Monitoring

Log Indicators:

  • kernel: watchdog: BUG: soft lockup - CPU# stuck for ... [kcompactd0:
  • kernel: Node 0 all_unreclaimable? yes
  • kernel: too_many_isolated messages

Network Indicators:

  • None - this is a local kernel issue

SIEM Query:

source="kernel" AND ("soft lockup" AND "kcompactd" OR "all_unreclaimable")

🔗 References

📤 Share & Export