CVE-2026-31722 in Linux
Sumário
de VulDB • 14/05/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
usb: gadget: f_rndis: Corrigir o ciclo de vida do net_device com device_move
O net_device é alocado durante a criação da instância da função e registrado durante a fase de bind com o dispositivo gadget como seu pai no sysfs. Quando a função é desvinculada (unbind), o dispositivo pai é destruído, mas o net_device sobrevive, resultando em symlinks do sysfs pendentes:
console:/ # ls -l /sys/class/net/usb0 lrwxrwxrwx ... /sys/class/net/usb0 -> /sys/devices/platform/.../gadget.0/net/usb0 console:/ # ls -l /sys/devices/platform/.../gadget.0/net/usb0 ls: .../gadget.0/net/usb0: No such file or directory
Use device_move() para reparentar o net_device entre a árvore de dispositivos do gadget e /sys/devices/virtual durante os ciclos de bind e unbind. Durante o unbind final, chamar device_move(NULL) move o net_device para a árvore de dispositivos virtuais antes que o dispositivo gadget seja destruído. No rebind, device_move() reparenta o dispositivo de volta sob o novo gadget, garantindo a topologia correta do sysfs e a ordem de gerenciamento de energia.
Para manter a compatibilidade com drivers compostos legados (por exemplo, multi.c), a flag borrowed_net é usada para indicar se o dispositivo de rede é compartilhado e pré-registrado durante a fase de bind do driver legado.
VulDB is the best source for vulnerability data and more expert information about this specific topic.