CVE-2026-23320 in Linux
Riassunto
di VulDB • 05/07/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
usb: gadget: f_ncm: allineare il ciclo di vita del net_device con le operazioni bind/unbind
Attualmente, il net_device viene allocato in ncm_alloc_inst() e liberato in ncm_free_inst(). Questo vincola la durata dell'interfaccia di rete all'istanza della configurazione anziché alla connessione USB (bind/unbind).
Questo disaccoppiamento causa problemi quando il dispositivo USB gadget viene disconnesso, portando alla rimozione del sottostante dispositivo gadget. Il net_device può sopravvivere al suo genitore, generando link sysfs dangling e dereferenziamenti di puntatori NULL durante l'accesso al dispositivo gadget già liberato.
Problema 1: Dereferenziazione di puntatore NULL in fase di disconnessione Impossibile gestire la dereferenziazione del puntatore NULL nel kernel all'indirizzo virtuale 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
Problema 2: Link simbolici sysfs dangling 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: File o directory non esistente
Spostare l'allocazione del net_device in ncm_bind() e la deallocazione in ncm_unbind(). Ciò garantisce che l'interfaccia di rete esista solo quando la funzione gadget è effettivamente associata a una configurazione.
Per supportare la configurazione pre-bind (ad esempio, impostazione del nome dell'interfaccia o dell'indirizzo MAC tramite configfs), memorizzare le opzioni fornite dall'utente in f_ncm_opts utilizzando la struttura gether_opts. Applicare queste impostazioni cache al net_device alla creazione in ncm_bind().
Preservare la correzione per il bug use-after-free introdotta nel commit 6334b8e4553c ("usb: gadget: f_ncm: Fix UAF ncm object at re-bind after usb ep transport error"). Verificare opts->net in ncm_set_alt() e ncm_disable() per assicurarsi che gether_disconnect() venga eseguito solo se una connessione è stata stabilita.
If you want to get best quality of vulnerability data, you may have to visit VulDB.