CVE-2024-42085

5.5 MEDIUM

📋 TL;DR

A race condition in the Linux kernel's DWC3 USB driver causes a deadlock when suspending systems with dual-role USB functionality enabled. This vulnerability affects Linux systems with specific kernel configurations and can cause system hangs or denial of service. The issue requires local access to trigger via system suspend commands.

💻 Affected Systems

Products:
  • Linux kernel
Versions: Kernel versions with specific commits between c7ebd8149ee5 and the fix commits
Operating Systems: Linux distributions using affected kernel versions
Default Config Vulnerable: ✅ No
Notes: Only vulnerable when CONFIG_USB_DWC3_DUAL_ROLE is enabled and using DWC3 USB controller hardware.

📦 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

System becomes completely unresponsive (deadlock) requiring hard reboot, causing denial of service and potential data loss.

🟠

Likely Case

System hangs during suspend/resume operations, requiring manual intervention to restore functionality.

🟢

If Mitigated

Minor disruption to suspend/resume functionality if triggered by authorized users.

🌐 Internet-Facing: LOW - Requires local system access to trigger via suspend commands.
🏢 Internal Only: MEDIUM - Local users or automated processes could trigger the deadlock, causing system instability.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: NO
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires local access and ability to execute suspend commands. No privilege escalation involved.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Kernel versions with fixes from provided git commits

Vendor Advisory: https://git.kernel.org/stable/c/17e2956633ca560b95f1cbbb297cfc2adf650649

Restart Required: Yes

Instructions:

1. Update to patched kernel version from your distribution. 2. Reboot system to load new kernel. 3. Verify kernel version matches patched release.

🔧 Temporary Workarounds

Disable USB dual-role mode

linux

Disable CONFIG_USB_DWC3_DUAL_ROLE kernel configuration to prevent the deadlock condition

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

Restrict suspend permissions

linux

Prevent non-privileged users from triggering system suspend

chmod 600 /sys/power/state
setfacl -m u:root:rw /sys/power/state

🧯 If You Can't Patch

  • Restrict access to system suspend functionality to privileged users only
  • Monitor for system hangs and implement automated recovery procedures

🔍 How to Verify

Check if Vulnerable:

Check if CONFIG_USB_DWC3_DUAL_ROLE is enabled and kernel version is within affected range: grep CONFIG_USB_DWC3_DUAL_ROLE /boot/config-$(uname -r)

Check Version:

uname -r

Verify Fix Applied:

Verify kernel version is updated beyond affected commits and test suspend/resume functionality

📡 Detection & Monitoring

Log Indicators:

  • System hangs during suspend
  • Kernel panic messages related to DWC3 driver
  • Watchdog timeouts

Network Indicators:

  • Sudden loss of connectivity from affected system

SIEM Query:

source="kernel" AND ("dwc3" OR "suspend" OR "deadlock")

🔗 References

📤 Share & Export