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/
Product status
40d133d7f542616cf9538508a372306e626a16e9 (git) before 93f116c3393a22acab96ad1bef12b2572eb80ca4
40d133d7f542616cf9538508a372306e626a16e9 (git) before e584cb58a2ea7ff4d3a4bc43d5ca512ed3ecb77d
40d133d7f542616cf9538508a372306e626a16e9 (git) before 85acaba2f42b557499bab3608307f17bf13beb69
40d133d7f542616cf9538508a372306e626a16e9 (git) before ec35c1969650e7cb6c8a91020e568ed46e3551b0
3.11
Any version before 3.11
6.12.78 (semver)
6.18.19 (semver)
6.19.9 (semver)
7.0 (original_commit_for_fix)
References
git.kernel.org/...c/93f116c3393a22acab96ad1bef12b2572eb80ca4
git.kernel.org/...c/e584cb58a2ea7ff4d3a4bc43d5ca512ed3ecb77d
git.kernel.org/...c/85acaba2f42b557499bab3608307f17bf13beb69
git.kernel.org/...c/ec35c1969650e7cb6c8a91020e568ed46e3551b0