CVE-2022-50416

5.5 MEDIUM

📋 TL;DR

This CVE describes a memory leak vulnerability in the Linux kernel's WPCM450 interrupt controller driver. When the of_iomap() function fails during device tree initialization, the allocated 'aic' structure isn't properly freed, causing a kernel memory leak. This affects systems using the WPCM450 interrupt controller, primarily embedded Linux devices.

💻 Affected Systems

Products:
  • Linux kernel with WPCM450 interrupt controller support
Versions: Linux kernel versions before the fix commits (specific versions vary by distribution)
Operating Systems: Linux distributions using vulnerable kernel versions
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects systems with WPCM450 hardware or where the wpcm450-aic driver is loaded. Most general-purpose systems 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 →

⚠️ 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

Memory leak accumulates over time, gradually degrading system performance and potentially causing resource exhaustion in long-running systems.

🟢

If Mitigated

With proper monitoring and restart policies, impact is limited to potential performance degradation rather than complete system failure.

🌐 Internet-Facing: LOW - This requires local access or kernel-level compromise to trigger the vulnerable code path.
🏢 Internal Only: MEDIUM - Internal users or processes with kernel access could potentially trigger this vulnerability, but exploitation requires specific conditions.

🎯 Exploit Status

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

Exploitation requires triggering the specific failure path in wpcm450_aic_of_init() function, which may require kernel-level access or specific hardware conditions.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Kernel versions containing the fix commits: 4208d4faf36573a507b5e5de17abe342e9276759, 740efb64ca5e8f2b30ac843bc4ab07950479fed4, 773c9d7f127f7a599d42ceed831de69f5aa22f03, bcbcb396e1a8bd4dcaabfb0d5b98abae70880470

Vendor Advisory: https://git.kernel.org/stable/c/4208d4faf36573a507b5e5de17abe342e9276759

Restart Required: Yes

Instructions:

1. Update to a patched kernel version from your distribution vendor. 2. Reboot the system to load the new kernel. 3. Verify the fix by checking kernel version or monitoring for memory leaks.

🔧 Temporary Workarounds

Disable WPCM450 interrupt controller

Linux

Prevent loading of the vulnerable driver if WPCM450 hardware is not required

modprobe -r wpcm450-aic
echo 'blacklist wpcm450-aic' > /etc/modprobe.d/blacklist-wpcm450.conf

🧯 If You Can't Patch

  • Implement system monitoring for memory leaks and kernel OOM events
  • Schedule regular system reboots to clear accumulated memory leaks

🔍 How to Verify

Check if Vulnerable:

Check if wpcm450-aic kernel module is loaded: lsmod | grep wpcm450. Check kernel version against patched versions.

Check Version:

uname -r

Verify Fix Applied:

Verify kernel version includes fix commits. Monitor /proc/meminfo and kernel logs for memory leak indicators after driver initialization.

📡 Detection & Monitoring

Log Indicators:

  • Kernel OOM (Out of Memory) messages
  • Memory allocation failures in kernel logs
  • System instability or crash reports

Network Indicators:

  • None - this is a local kernel vulnerability

SIEM Query:

source="kernel" AND ("out of memory" OR "memory allocation failure" OR "kernel panic")

🔗 References

📤 Share & Export