CVE-2022-50357

5.5 MEDIUM

📋 TL;DR

This CVE describes a memory leak vulnerability in the Linux kernel's DWC3 USB controller driver during device probe operations. When certain error conditions occur during USB device initialization, the driver fails to properly clean up power supply resources, leading to kernel memory exhaustion over time. This affects any Linux system using the DWC3 USB controller hardware.

💻 Affected Systems

Products:
  • Linux kernel
Versions: Kernel versions containing the vulnerable DWC3 driver code before the fix commits
Operating Systems: Linux distributions using affected kernel versions
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects systems with DWC3 USB controller hardware. The vulnerability triggers during USB device probe failures.

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

⚠️ Risk & Real-World Impact

🔴

Worst Case

Repeated triggering could lead to kernel memory exhaustion, causing system instability, denial of service, or potential kernel crashes requiring system reboot.

🟠

Likely Case

Gradual memory leak during USB device initialization failures, potentially causing system performance degradation over time.

🟢

If Mitigated

With proper patching, no impact as the memory leak is fixed during error handling.

🌐 Internet-Facing: LOW - Requires local USB device interaction or specific hardware conditions, not directly exploitable over network.
🏢 Internal Only: MEDIUM - Could affect systems with USB device management, particularly in environments with frequent USB device changes or faulty USB hardware.

🎯 Exploit Status

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

Exploitation requires triggering specific error conditions during USB device initialization, typically through faulty USB hardware or specific device interactions.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Kernel versions containing commits 2a735e4b5580a2a6bbd6572109b4c4f163c57462, 3a213503f483173e7eea76f2e7e3bdd6df7fd6f8, or 79c3afb55942368921237d7b5355d48c52bdde20

Vendor Advisory: https://git.kernel.org/stable/c/2a735e4b5580a2a6bbd6572109b4c4f163c57462

Restart Required: Yes

Instructions:

1. Update Linux kernel to version containing the fix commits. 2. For distributions: Use package manager (apt/yum/dnf) to update kernel package. 3. Reboot system to load new kernel.

🔧 Temporary Workarounds

Disable DWC3 USB controller

Linux

Prevents use of vulnerable driver but disables USB functionality

echo 'blacklist dwc3' > /etc/modprobe.d/blacklist-dwc3.conf
update-initramfs -u
reboot

🧯 If You Can't Patch

  • Monitor kernel memory usage for unusual increases and restart affected systems if memory exhaustion occurs
  • Avoid connecting untrusted or faulty USB devices that could trigger probe failures

🔍 How to Verify

Check if Vulnerable:

Check if system uses DWC3 USB controller: 'lsmod | grep dwc3' and check kernel version against affected versions

Check Version:

uname -r

Verify Fix Applied:

Verify kernel version includes fix commits: 'uname -r' and check with distribution vendor for patch inclusion

📡 Detection & Monitoring

Log Indicators:

  • Kernel oom-killer messages
  • Memory allocation failures in kernel logs
  • USB device initialization errors

Network Indicators:

  • None - local vulnerability only

SIEM Query:

source="kernel" AND ("oom-killer" OR "Out of memory" OR "dwc3" AND "error")

🔗 References

📤 Share & Export