CVE-2022-49713

5.5 MEDIUM

📋 TL;DR

This CVE describes a memory leak vulnerability in the Linux kernel's DWC2 USB host controller driver. When platform_get_resource() fails during initialization, the driver doesn't properly free allocated memory, causing a kernel memory leak. This affects Linux systems using the DWC2 USB driver.

💻 Affected Systems

Products:
  • Linux kernel
Versions: Kernel versions with the vulnerable DWC2 driver code (specific commit range not provided in CVE description)
Operating Systems: Linux distributions using affected kernel versions
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects systems using the DWC2 USB host controller driver. Many embedded systems and some ARM-based devices use this driver.

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

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

Memory leak gradually consumes kernel memory over time, potentially leading to system performance degradation or eventual denial of service.

🟢

If Mitigated

With proper monitoring and memory limits, impact is limited to potential performance issues that can be detected and addressed before system failure.

🌐 Internet-Facing: LOW - This vulnerability requires local access or USB device interaction and cannot be directly exploited over the network.
🏢 Internal Only: MEDIUM - Local attackers or malicious USB devices could trigger the memory leak, potentially affecting system stability.

🎯 Exploit Status

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

Exploitation requires triggering the specific failure condition during USB initialization, which may require physical USB device access or kernel module manipulation.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Kernel versions containing the fix commits referenced in the CVE

Vendor Advisory: https://git.kernel.org/stable/c/3755278f078460b021cd0384562977bf2039a57a

Restart Required: Yes

Instructions:

1. Update Linux kernel to patched version. 2. For embedded systems: update kernel via vendor firmware updates. 3. Reboot system after kernel update.

🔧 Temporary Workarounds

Disable DWC2 USB driver

linux

Prevent loading of the vulnerable DWC2 USB driver module

echo 'blacklist dwc2' >> /etc/modprobe.d/blacklist.conf
rmmod dwc2

Limit USB device connections

linux

Restrict USB device connections to prevent triggering the initialization failure

🧯 If You Can't Patch

  • Implement kernel memory monitoring and alerting for unusual memory consumption patterns
  • Restrict physical access to USB ports and implement USB device whitelisting policies

🔍 How to Verify

Check if Vulnerable:

Check if DWC2 driver is loaded: 'lsmod | grep dwc2' and check kernel version against patched versions

Check Version:

uname -r

Verify Fix Applied:

Verify kernel version is updated to patched version and DWC2 driver loads without errors

📡 Detection & Monitoring

Log Indicators:

  • Kernel oops messages related to USB initialization
  • Memory allocation failures in kernel logs
  • System logs showing memory exhaustion

SIEM Query:

source="kernel" AND ("dwc2" OR "USB" OR "memory allocation failed")

🔗 References

📤 Share & Export