CVE-2026-43421

usb: gadget: f_ncm: Fix net_device lifecycle with device_move

State
Published
Severity
Not scored
Published
May 8, 2026
Updated
Oct 15, 2026
Reserved
May 1, 2026

Read the record on cve.org

Description

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

usb: gadget: f_ncm: Fix net_device lifecycle with device_move

The network device outlived its parent gadget device during disconnection, resulting in dangling sysfs links and null pointer dereference problems.

A prior attempt to solve this by removing SET_NETDEV_DEV entirely [1] was reverted due to power management ordering concerns and a NO-CARRIER regression.

A subsequent attempt to defer net_device allocation to bind [2] broke 1:1 mapping between function instance and network device, making it impossible for configfs to report the resolved interface name. This results in a regression where the DHCP server fails on pmOS.

Use device_move to reparent the net_device between the gadget device and /sys/devices/virtual/ across bind/unbind cycles. This preserves the network interface across USB reconnection, allowing the DHCP server to retain their binding.

Introduce gether_attach_gadget()/gether_detach_gadget() helpers and use __free(detach_gadget) macro to undo attachment on bind failure. The bind_count ensures device_move executes only on the first bind.

[1] https://lore.kernel.org/lkml/f2a4f9847617a0929d62025748384092e5f35cce.camel@crapouillou.net/ [2] https://lore.kernel.org/linux-usb/795ea759-7eaf-4f78-81f4-01ffbf2d7961@ixit.cz/

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 40d133d7f542616cf9538508a372306e626a16e9 to before 7c97366f5dac5255e60a317ffe3a5b18f3745547Affected
  • 40d133d7f542616cf9538508a372306e626a16e9 to before 36c41e9724c9a7a7cda37f5a4e9d94f25c8031c4Affected
  • 40d133d7f542616cf9538508a372306e626a16e9 to before 93f116c3393a22acab96ad1bef12b2572eb80ca4Affected
  • 40d133d7f542616cf9538508a372306e626a16e9 to before e584cb58a2ea7ff4d3a4bc43d5ca512ed3ecb77dAffected
  • 40d133d7f542616cf9538508a372306e626a16e9 to before 85acaba2f42b557499bab3608307f17bf13beb69Affected
  • 40d133d7f542616cf9538508a372306e626a16e9 to before ec35c1969650e7cb6c8a91020e568ed46e3551b0Affected
LinuxLinux
  • 3.11Affected
  • before 3.11Not affected
  • 6.1.176 through 6.1.*Not affected
  • 6.6.143 through 6.6.*Not affected
  • 6.12.78 through 6.12.*Not affected
  • 6.18.19 through 6.18.*Not affected
  • 6.19.9 through 6.19.*Not affected
  • 7.0 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.