CVE-2026-31756
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
01/05/2026
Last modified:
08/05/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
usb: dwc2: gadget: Fix spin_lock/unlock mismatch in dwc2_hsotg_udc_stop()<br />
<br />
dwc2_gadget_exit_clock_gating() internally calls call_gadget() macro,<br />
which expects hsotg->lock to be held since it does spin_unlock/spin_lock<br />
around the gadget driver callback invocation.<br />
<br />
However, dwc2_hsotg_udc_stop() calls dwc2_gadget_exit_clock_gating()<br />
without holding the lock. This leads to:<br />
- spin_unlock on a lock that is not held (undefined behavior)<br />
- The lock remaining held after dwc2_gadget_exit_clock_gating() returns,<br />
causing a deadlock when spin_lock_irqsave() is called later in the<br />
same function.<br />
<br />
Fix this by acquiring hsotg->lock before calling<br />
dwc2_gadget_exit_clock_gating() and releasing it afterwards, which<br />
satisfies the locking requirement of the call_gadget() macro.
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.15.187 (including) | 5.15.203 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.1.143 (including) | 6.1.168 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.6.96 (including) | 6.6.134 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.12.36 (including) | 6.12.81 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.15.5 (including) | 6.18.22 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 (including) | 6.19.12 (excluding) |
| cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc7:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/4ed9d2dd9f29828c311db6ec4b8e0d34bfd6d6a4
- https://git.kernel.org/stable/c/51b62286fc668c6eb74dee7624ec0beec3c5a0ed
- https://git.kernel.org/stable/c/61937f686290494998236c680ce0836b8dd63a3f
- https://git.kernel.org/stable/c/8ffe31acb3b77a30ae34d01719a269881569fb7f
- https://git.kernel.org/stable/c/9bb4b5ed7f8c4f95cc556bdf042b0ba2fa13557a
- https://git.kernel.org/stable/c/beab10429439e20708036a66fb0d97ffb79da6a1
- https://git.kernel.org/stable/c/e9fcca3e87463013d595c65c2189ffaa32ad3b50



