CVE-2026-31725
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
01/05/2026
Last modified:
07/05/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
usb: gadget: f_ecm: Fix net_device lifecycle with device_move<br />
<br />
The net_device is allocated during function instance creation and<br />
registered during the bind phase with the gadget device as its sysfs<br />
parent. When the function unbinds, the parent device is destroyed, but<br />
the net_device survives, resulting in dangling sysfs symlinks:<br />
<br />
console:/ # ls -l /sys/class/net/usb0<br />
lrwxrwxrwx ... /sys/class/net/usb0 -><br />
/sys/devices/platform/.../gadget.0/net/usb0<br />
console:/ # ls -l /sys/devices/platform/.../gadget.0/net/usb0<br />
ls: .../gadget.0/net/usb0: No such file or directory<br />
<br />
Use device_move() to reparent the net_device between the gadget device<br />
tree and /sys/devices/virtual across bind and unbind cycles. During the<br />
final unbind, calling device_move(NULL) moves the net_device to the<br />
virtual device tree before the gadget device is destroyed. On rebinding,<br />
device_move() reparents the device back under the new gadget, ensuring<br />
proper sysfs topology and power management ordering.<br />
<br />
To maintain compatibility with legacy composite drivers (e.g., multi.c),<br />
the bound flag is used to indicate whether the network device is shared<br />
and pre-registered during the legacy driver&#39;s bind phase.
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:*:*:*:*:*:*:*:* | 3.11 (including) | 6.12.81 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (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:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page



