CVE-2026-23320 in Linux
Zusammenfassung
von VulDB • 11.06.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
usb: gadget: f_ncm: Lebenszyklus von net_device an Bind/Unbind anpassen
Derzeit wird das net_device in ncm_alloc_inst() allokiert und in ncm_free_inst() freigegeben. Dies koppelt die Lebensdauer der Netzwerkschnittstelle an die Konfigurationsinstanz und nicht an die USB-Verbindung (Bind/Unbind).
Diese Entkopplung führt zu Problemen, wenn das USB-Gadget getrennt wird, wobei das zugrunde liegende Gadget-Gerät entfernt wird. Das net_device kann überleben, während sein übergeordnetes Element bereits entfernt wurde, was zu hängenden sysfs-Symlinks und NULL-Zeiger-Dereferenzierungen beim Zugriff auf das freigegebene Gadget-Gerät führt.
Problem 1: NULL-Zeiger-Dereferenzierung bei Trennung Nicht in der Lage, Kernel-NULL-Zeiger-Dereferenzierung bei virtueller Adresse 0000000000000000 Call-Trace: __pi_strlen+0x14/0x150 rtnl_fill_ifinfo+0x6b4/0x708 rtmsg_ifinfo_build_skb+0xd8/0x13c rtmsg_ifinfo+0x50/0xa0 __dev_notify_flags+0x4c/0x1f0 dev_change_flags+0x54/0x70 do_setlink+0x390/0xebc rtnl_newlink+0x7d0/0xac8 rtnetlink_rcv_msg+0x27c/0x410 netlink_rcv_skb+0x134/0x150 rtnetlink_rcv+0x18/0x28 netlink_unicast+0x254/0x3f0 netlink_sendmsg+0x2e0/0x3d4
Problem 2: Hängende sysfs-Symlinks console:/ # ls -l /sys/class/net/ncm0 lrwxrwxrwx ... /sys/class/net/ncm0 -> /sys/devices/platform/.../gadget.0/net/ncm0 console:/ # ls -l /sys/devices/platform/.../gadget.0/net/ncm0 ls: .../gadget.0/net/ncm0: Datei oder Verzeichnis nicht gefunden
Verschieben Sie die Allokation von net_device nach ncm_bind() und die Freigabe nach ncm_unbind(). Dies stellt sicher, dass die Netzwerkschnittstelle nur existiert, wenn die Gadget-Funktion tatsächlich an eine Konfiguration gebunden ist.
Um die Konfiguration vor dem Binden zu unterstützen (z. B. Festlegen des Schnittstellenamens oder der MAC-Adresse über configfs), werden benutzerdefinierte Optionen in f_ncm_opts unter Verwendung der gether_opts-Struktur zwischengespeichert. Diese zwischengespeicherten Einstellungen werden bei der Erstellung in ncm_bind() auf das net_device angewendet.
Bewahren Sie die Behebung des Use-After-Free-Fehlers aus dem Commit 6334b8e4553c ("usb: gadget: f_ncm: Fix UAF ncm object at re-bind after usb ep transport error") bei. Überprüfen Sie opts->net in ncm_set_alt() und ncm_disable(), um sicherzustellen, dass gether_disconnect() nur ausgeführt wird, wenn eine Verbindung hergestellt wurde.
If you want to get best quality of vulnerability data, you may have to visit VulDB.