CVE-2024-42085

usb: dwc3: core: remove lock of otg mode during gadget suspend/resume to avoid deadlock

published July 29, 2024

CVSS
—
EPSS
0%
Percentile
6.8
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

usb: dwc3: core: remove lock of otg mode during gadget suspend/resume to avoid deadlock

When config CONFIG_USB_DWC3_DUAL_ROLE is selected, and trigger system

to enter suspend status with below command:

echo mem > /sys/power/state

There will be a deadlock issue occurring. Detailed invoking path as

below:

dwc3_suspend_common()

spin_lock_irqsave(&dwc->lock, flags); <-- 1st

dwc3_gadget_suspend(dwc);

dwc3_gadget_soft_disconnect(dwc);

spin_lock_irqsave(&dwc->lock, flags); <-- 2nd

This issue is exposed by commit c7ebd8149ee5 ("usb: dwc3: gadget: Fix

NULL pointer dereference in dwc3_gadget_suspend") that removes the code

of checking whether dwc->gadget_driver is NULL or not. It causes the

following code is executed and deadlock occurs when trying to get the

spinlock. In fact, the root cause is the commit 5265397f9442("usb: dwc3:

Remove DWC3 locking during gadget suspend/resume") that forgot to remove

the lock of otg mode. So, remove the redundant lock of otg mode during

gadget suspend/resume.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00176 · 6.8th percentile
Published
2024-07-29T16:26Z
EPSS history
Timeline
  • 29 JUL 16:26Z
    usb: dwc3: core: remove lock of otg mode during gadget suspend/resume to avoid deadlock
    cvelistv5