CVE-2026-43421

usb: gadget: f_ncm: Fix net_device lifecycle with device_move

MEDIUM
5.5
CVSS Score
Published: May 8, 2026 at 02:21 PM UTC
Updated: October 15, 2026 at 02:19 AM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.1%

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/[email protected]/ [2] https://lore.kernel.org/linux-usb/[email protected]/

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

3.11 ≤ v < 6.12.786.13 ≤ v < 6.18.196.19 ≤ v < 6.19.940d133d7f542616cf9538508a372306e626a16e97.07.0 rc17.0 rc27.0 rc3
Vendor states this is fixed in 36c41e9724c9a7a7cda37f5a4e9d94f25c8031c4 (fixed)
Vendor states this is fixed in 7c97366f5dac5255e60a317ffe3a5b18f3745547 (fixed)
Vendor states this is fixed in 85acaba2f42b557499bab3608307f17bf13beb69 (fixed)
Vendor states this is fixed in 93f116c3393a22acab96ad1bef12b2572eb80ca4 (fixed)
Vendor states this is fixed in e584cb58a2ea7ff4d3a4bc43d5ca512ed3ecb77d (fixed)
Vendor states this is fixed in ec35c1969650e7cb6c8a91020e568ed46e3551b0 (fixed)
Vendor states this is fixed in 3.11 (unaffected)
Vendor states this is fixed in 6.1.176 (unaffected)
Vendor states this is fixed in 6.12.78 (unaffected)
Vendor states this is fixed in 6.18.19 (unaffected)
Vendor states this is fixed in 6.19.9 (unaffected)
Vendor states this is fixed in 6.6.143 (unaffected)
Vendor states this is fixed in 7.0 (unaffected)

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-476

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card