CVE-2026-31728
Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-362
Ejecución concurrente utilizando recursos compartidos con una incorrecta sincronización (Condición de carrera)
Fecha de publicación:
01/05/2026
Última modificación:
07/05/2026
Descripción
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
usb: gadget: u_ether: Fix race between gether_disconnect and eth_stop<br />
<br />
A race condition between gether_disconnect() and eth_stop() leads to a<br />
NULL pointer dereference. Specifically, if eth_stop() is triggered<br />
concurrently while gether_disconnect() is tearing down the endpoints,<br />
eth_stop() attempts to access the cleared endpoint descriptor, causing<br />
the following NPE:<br />
<br />
Unable to handle kernel NULL pointer dereference<br />
Call trace:<br />
__dwc3_gadget_ep_enable+0x60/0x788<br />
dwc3_gadget_ep_enable+0x70/0xe4<br />
usb_ep_enable+0x60/0x15c<br />
eth_stop+0xb8/0x108<br />
<br />
Because eth_stop() crashes while holding the dev->lock, the thread<br />
running gether_disconnect() fails to acquire the same lock and spins<br />
forever, resulting in a hardlockup:<br />
<br />
Core - Debugging Information for Hardlockup core(7)<br />
Call trace:<br />
queued_spin_lock_slowpath+0x94/0x488<br />
_raw_spin_lock+0x64/0x6c<br />
gether_disconnect+0x19c/0x1e8<br />
ncm_set_alt+0x68/0x1a0<br />
composite_setup+0x6a0/0xc50<br />
<br />
The root cause is that the clearing of dev->port_usb in<br />
gether_disconnect() is delayed until the end of the function.<br />
<br />
Move the clearing of dev->port_usb to the very beginning of<br />
gether_disconnect() while holding dev->lock. This cuts off the link<br />
immediately, ensuring eth_stop() will see dev->port_usb as NULL and<br />
safely bail out.
Impacto
Puntuación base 3.x
4.70
Gravedad 3.x
MEDIA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 2.6.27 (incluyendo) | 5.10.253 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (incluyendo) | 5.15.203 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 6.1.169 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.6.134 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.12.81 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (incluyendo) | 6.18.22 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 (incluyendo) | 6.19.12 (excluyendo) |
| 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:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/6ad77458637b78ec655e3da5f112c862e6690a9d
- https://git.kernel.org/stable/c/8ff689edfeceb5e3ec1623e09af2b2aa0f1098a8
- https://git.kernel.org/stable/c/a259ba0bce3b192c04334499690372a250f7d0b1
- https://git.kernel.org/stable/c/bbb09bb89ffa571475f66daca9482b974cd29d6a
- https://git.kernel.org/stable/c/e1e7a66584bf0aff3becb73c19fa31527889fc9e
- https://git.kernel.org/stable/c/e1eabb072c75681f78312c484ccfffb7430f206e
- https://git.kernel.org/stable/c/f02980594deef751e42133714aee25228f1494c6
- https://git.kernel.org/stable/c/f6813c2b2ae78def76b69e0f9d72f80e4a1c4aca



