Vulnerability Details CVE-2026-31756
In the Linux kernel, the following vulnerability has been resolved:
usb: dwc2: gadget: Fix spin_lock/unlock mismatch in dwc2_hsotg_udc_stop()
dwc2_gadget_exit_clock_gating() internally calls call_gadget() macro,
which expects hsotg->lock to be held since it does spin_unlock/spin_lock
around the gadget driver callback invocation.
However, dwc2_hsotg_udc_stop() calls dwc2_gadget_exit_clock_gating()
without holding the lock. This leads to:
- spin_unlock on a lock that is not held (undefined behavior)
- The lock remaining held after dwc2_gadget_exit_clock_gating() returns,
causing a deadlock when spin_lock_irqsave() is called later in the
same function.
Fix this by acquiring hsotg->lock before calling
dwc2_gadget_exit_clock_gating() and releasing it afterwards, which
satisfies the locking requirement of the call_gadget() macro.
Exploit prediction scoring system (EPSS) score
EPSS Score 0.0
EPSS Ranking 2.5%
CVSS Severity
CVSS v3 Score 5.5
Products affected by CVE-2026-31756
-
cpe:2.3:o:linux:linux_kernel:5.15.187
-
cpe:2.3:o:linux:linux_kernel:5.15.188
-
cpe:2.3:o:linux:linux_kernel:5.15.189
-
cpe:2.3:o:linux:linux_kernel:5.15.190
-
cpe:2.3:o:linux:linux_kernel:5.15.191
-
cpe:2.3:o:linux:linux_kernel:5.15.192
-
cpe:2.3:o:linux:linux_kernel:5.15.193
-
cpe:2.3:o:linux:linux_kernel:5.15.194
-
cpe:2.3:o:linux:linux_kernel:5.15.195
-
cpe:2.3:o:linux:linux_kernel:5.15.196
-
cpe:2.3:o:linux:linux_kernel:5.15.197
-
cpe:2.3:o:linux:linux_kernel:5.15.198
-
cpe:2.3:o:linux:linux_kernel:5.15.199
-
cpe:2.3:o:linux:linux_kernel:5.15.200
-
cpe:2.3:o:linux:linux_kernel:5.15.201
-
cpe:2.3:o:linux:linux_kernel:5.15.202
-
cpe:2.3:o:linux:linux_kernel:6.1.143
-
cpe:2.3:o:linux:linux_kernel:6.1.144
-
cpe:2.3:o:linux:linux_kernel:6.1.145
-
cpe:2.3:o:linux:linux_kernel:6.1.146
-
cpe:2.3:o:linux:linux_kernel:6.1.147
-
cpe:2.3:o:linux:linux_kernel:6.1.148
-
cpe:2.3:o:linux:linux_kernel:6.1.149
-
cpe:2.3:o:linux:linux_kernel:6.1.150
-
cpe:2.3:o:linux:linux_kernel:6.1.151
-
cpe:2.3:o:linux:linux_kernel:6.1.152
-
cpe:2.3:o:linux:linux_kernel:6.1.153
-
cpe:2.3:o:linux:linux_kernel:6.1.154
-
cpe:2.3:o:linux:linux_kernel:6.1.155
-
cpe:2.3:o:linux:linux_kernel:6.1.156
-
cpe:2.3:o:linux:linux_kernel:6.1.157
-
cpe:2.3:o:linux:linux_kernel:6.1.158
-
cpe:2.3:o:linux:linux_kernel:6.1.159
-
cpe:2.3:o:linux:linux_kernel:6.1.160
-
cpe:2.3:o:linux:linux_kernel:6.1.161
-
cpe:2.3:o:linux:linux_kernel:6.1.162
-
cpe:2.3:o:linux:linux_kernel:6.1.163
-
cpe:2.3:o:linux:linux_kernel:6.1.164
-
cpe:2.3:o:linux:linux_kernel:6.1.165
-
cpe:2.3:o:linux:linux_kernel:6.1.167
-
cpe:2.3:o:linux:linux_kernel:6.12.36
-
cpe:2.3:o:linux:linux_kernel:6.12.37
-
cpe:2.3:o:linux:linux_kernel:6.12.38
-
cpe:2.3:o:linux:linux_kernel:6.12.39
-
cpe:2.3:o:linux:linux_kernel:6.12.40
-
cpe:2.3:o:linux:linux_kernel:6.12.41
-
cpe:2.3:o:linux:linux_kernel:6.12.42
-
cpe:2.3:o:linux:linux_kernel:6.12.43
-
cpe:2.3:o:linux:linux_kernel:6.12.44
-
cpe:2.3:o:linux:linux_kernel:6.12.45
-
cpe:2.3:o:linux:linux_kernel:6.12.46
-
cpe:2.3:o:linux:linux_kernel:6.12.47
-
cpe:2.3:o:linux:linux_kernel:6.12.48
-
cpe:2.3:o:linux:linux_kernel:6.12.49
-
cpe:2.3:o:linux:linux_kernel:6.12.50
-
cpe:2.3:o:linux:linux_kernel:6.12.51
-
cpe:2.3:o:linux:linux_kernel:6.12.52
-
cpe:2.3:o:linux:linux_kernel:6.12.53
-
cpe:2.3:o:linux:linux_kernel:6.12.54
-
cpe:2.3:o:linux:linux_kernel:6.12.55
-
cpe:2.3:o:linux:linux_kernel:6.12.56
-
cpe:2.3:o:linux:linux_kernel:6.12.57
-
cpe:2.3:o:linux:linux_kernel:6.12.58
-
cpe:2.3:o:linux:linux_kernel:6.12.59
-
cpe:2.3:o:linux:linux_kernel:6.12.60
-
cpe:2.3:o:linux:linux_kernel:6.12.61
-
cpe:2.3:o:linux:linux_kernel:6.12.62
-
cpe:2.3:o:linux:linux_kernel:6.12.63
-
cpe:2.3:o:linux:linux_kernel:6.12.64
-
cpe:2.3:o:linux:linux_kernel:6.12.65
-
cpe:2.3:o:linux:linux_kernel:6.12.66
-
cpe:2.3:o:linux:linux_kernel:6.12.67
-
cpe:2.3:o:linux:linux_kernel:6.12.68
-
cpe:2.3:o:linux:linux_kernel:6.12.69
-
cpe:2.3:o:linux:linux_kernel:6.12.70
-
cpe:2.3:o:linux:linux_kernel:6.12.72
-
cpe:2.3:o:linux:linux_kernel:6.12.74
-
cpe:2.3:o:linux:linux_kernel:6.12.75
-
cpe:2.3:o:linux:linux_kernel:6.12.77
-
cpe:2.3:o:linux:linux_kernel:6.12.78
-
cpe:2.3:o:linux:linux_kernel:6.12.80
-
cpe:2.3:o:linux:linux_kernel:6.15.10
-
cpe:2.3:o:linux:linux_kernel:6.15.11
-
cpe:2.3:o:linux:linux_kernel:6.15.5
-
cpe:2.3:o:linux:linux_kernel:6.15.6
-
cpe:2.3:o:linux:linux_kernel:6.15.7
-
cpe:2.3:o:linux:linux_kernel:6.15.8
-
cpe:2.3:o:linux:linux_kernel:6.15.9
-
cpe:2.3:o:linux:linux_kernel:6.16
-
cpe:2.3:o:linux:linux_kernel:6.16.1
-
cpe:2.3:o:linux:linux_kernel:6.16.10
-
cpe:2.3:o:linux:linux_kernel:6.16.11
-
cpe:2.3:o:linux:linux_kernel:6.16.12
-
cpe:2.3:o:linux:linux_kernel:6.16.2
-
cpe:2.3:o:linux:linux_kernel:6.16.3
-
cpe:2.3:o:linux:linux_kernel:6.16.4
-
cpe:2.3:o:linux:linux_kernel:6.16.5
-
cpe:2.3:o:linux:linux_kernel:6.16.6
-
cpe:2.3:o:linux:linux_kernel:6.16.7
-
cpe:2.3:o:linux:linux_kernel:6.16.8
-
cpe:2.3:o:linux:linux_kernel:6.16.9
-
cpe:2.3:o:linux:linux_kernel:6.17
-
cpe:2.3:o:linux:linux_kernel:6.17.1
-
cpe:2.3:o:linux:linux_kernel:6.17.10
-
cpe:2.3:o:linux:linux_kernel:6.17.11
-
cpe:2.3:o:linux:linux_kernel:6.17.12
-
cpe:2.3:o:linux:linux_kernel:6.17.13
-
cpe:2.3:o:linux:linux_kernel:6.17.2
-
cpe:2.3:o:linux:linux_kernel:6.17.3
-
cpe:2.3:o:linux:linux_kernel:6.17.4
-
cpe:2.3:o:linux:linux_kernel:6.17.5
-
cpe:2.3:o:linux:linux_kernel:6.17.6
-
cpe:2.3:o:linux:linux_kernel:6.17.7
-
cpe:2.3:o:linux:linux_kernel:6.17.8
-
cpe:2.3:o:linux:linux_kernel:6.17.9
-
cpe:2.3:o:linux:linux_kernel:6.18
-
cpe:2.3:o:linux:linux_kernel:6.18.1
-
cpe:2.3:o:linux:linux_kernel:6.18.10
-
cpe:2.3:o:linux:linux_kernel:6.18.11
-
cpe:2.3:o:linux:linux_kernel:6.18.13
-
cpe:2.3:o:linux:linux_kernel:6.18.14
-
cpe:2.3:o:linux:linux_kernel:6.18.16
-
cpe:2.3:o:linux:linux_kernel:6.18.17
-
cpe:2.3:o:linux:linux_kernel:6.18.18
-
cpe:2.3:o:linux:linux_kernel:6.18.19
-
cpe:2.3:o:linux:linux_kernel:6.18.2
-
cpe:2.3:o:linux:linux_kernel:6.18.20
-
cpe:2.3:o:linux:linux_kernel:6.18.21
-
cpe:2.3:o:linux:linux_kernel:6.18.3
-
cpe:2.3:o:linux:linux_kernel:6.18.4
-
cpe:2.3:o:linux:linux_kernel:6.18.5
-
cpe:2.3:o:linux:linux_kernel:6.18.6
-
cpe:2.3:o:linux:linux_kernel:6.18.7
-
cpe:2.3:o:linux:linux_kernel:6.18.8
-
cpe:2.3:o:linux:linux_kernel:6.18.9
-
cpe:2.3:o:linux:linux_kernel:6.19
-
cpe:2.3:o:linux:linux_kernel:6.19.1
-
cpe:2.3:o:linux:linux_kernel:6.19.10
-
cpe:2.3:o:linux:linux_kernel:6.19.11
-
cpe:2.3:o:linux:linux_kernel:6.19.3
-
cpe:2.3:o:linux:linux_kernel:6.19.4
-
cpe:2.3:o:linux:linux_kernel:6.19.6
-
cpe:2.3:o:linux:linux_kernel:6.19.7
-
cpe:2.3:o:linux:linux_kernel:6.19.8
-
cpe:2.3:o:linux:linux_kernel:6.19.9
-
cpe:2.3:o:linux:linux_kernel:6.6.100
-
cpe:2.3:o:linux:linux_kernel:6.6.101
-
cpe:2.3:o:linux:linux_kernel:6.6.102
-
cpe:2.3:o:linux:linux_kernel:6.6.103
-
cpe:2.3:o:linux:linux_kernel:6.6.104
-
cpe:2.3:o:linux:linux_kernel:6.6.105
-
cpe:2.3:o:linux:linux_kernel:6.6.106
-
cpe:2.3:o:linux:linux_kernel:6.6.107
-
cpe:2.3:o:linux:linux_kernel:6.6.108
-
cpe:2.3:o:linux:linux_kernel:6.6.109
-
cpe:2.3:o:linux:linux_kernel:6.6.110
-
cpe:2.3:o:linux:linux_kernel:6.6.111
-
cpe:2.3:o:linux:linux_kernel:6.6.112
-
cpe:2.3:o:linux:linux_kernel:6.6.113
-
cpe:2.3:o:linux:linux_kernel:6.6.114
-
cpe:2.3:o:linux:linux_kernel:6.6.115
-
cpe:2.3:o:linux:linux_kernel:6.6.116
-
cpe:2.3:o:linux:linux_kernel:6.6.117
-
cpe:2.3:o:linux:linux_kernel:6.6.118
-
cpe:2.3:o:linux:linux_kernel:6.6.119
-
cpe:2.3:o:linux:linux_kernel:6.6.120
-
cpe:2.3:o:linux:linux_kernel:6.6.121
-
cpe:2.3:o:linux:linux_kernel:6.6.122
-
cpe:2.3:o:linux:linux_kernel:6.6.123
-
cpe:2.3:o:linux:linux_kernel:6.6.124
-
cpe:2.3:o:linux:linux_kernel:6.6.125
-
cpe:2.3:o:linux:linux_kernel:6.6.127
-
cpe:2.3:o:linux:linux_kernel:6.6.128
-
cpe:2.3:o:linux:linux_kernel:6.6.129
-
cpe:2.3:o:linux:linux_kernel:6.6.130
-
cpe:2.3:o:linux:linux_kernel:6.6.131
-
cpe:2.3:o:linux:linux_kernel:6.6.96
-
cpe:2.3:o:linux:linux_kernel:6.6.97
-
cpe:2.3:o:linux:linux_kernel:6.6.98
-
cpe:2.3:o:linux:linux_kernel:6.6.99
-
cpe:2.3:o:linux:linux_kernel:7.0