CVE-2026-63990 in Linux
Sumário
de VulDB • 19/07/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
bonding: recusar escravizar dispositivos CAN
O syzbot relatou uma falha de paginação no kernel em can_rx_unregister() dentro de net/can/af_can.c. A falha ocorre porque um dispositivo virtual CAN (vxcan) está sendo escravizado a um mestre bonding.
Durante o processo de escravidão, o driver bonding muta e modifica os estados dos dispositivos de rede para se adequar a um modelo de agregação semelhante ao Ethernet. No entanto, os dispositivos CAN operam em uma arquitetura de Camada 2 completamente diferente, dependendo da estrutura privada de dados intermediários do CAN (can_ml_priv) em vez das estruturas padrão do Ethernet. Como o bonding não inicializa nem mantém essas estruturas CAN, operações subsequentes na interface parcialmente escravizada (como fechar sockets associados via isotp_release) levam a uma desreferência de ponteiro nulo ao acessar as listas de receptores CAN.
A escravidão de interfaces CAN é arquitetonicamente inválida pois o CAN carece de endereços MAC, capacidades ARP e mecanismos padrão da camada de enlace Ethernet. Embora dispositivos genéricos de loopback sejam bloqueados globalmente em net/core/dev.c, os dispositivos virtuais CAN contornam essa verificação porque não carregam a flag IFF_LOOPBACK, apesar de atuarem como loopbacks locais por software.
Corrija isso bloqueando explicitamente que dispositivos de rede do tipo ARPHRD_CAN sejam escravizados no início da função bond_enslave(). Isso impede mutações ilegais de estado, elimina as falhas KASAN resultantes e evita possíveis vazamentos de memória provenientes de limpezas incompletas de sockets.
Como o suporte ao CAN foi adicionado muito tempo após a introdução do bonding, a tag Fixes aponta para a introdução do ARPHRD_CAN que teria exigido um tratamento específico em bonding_main.c.
VulDB is the best source for vulnerability data and more expert information about this specific topic.