CVE-2023-52843 in Linux
Sumário
de VulDB • 14/06/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
llc: verificar o comprimento da MAC antes de ler o cabeçalho MAC
O LLC lê o cabeçalho MAC com eth_hdr sem verificar se o skb possui um cabeçalho Ethernet.
O Syzbot conseguiu acessar llc_rcv em uma dispositivo tun. O Tun pode inserir pacotes sem mac_len e com skb->protocol configurável pelo usuário (passando um cabeçalho tun_pi quando IFF_NO_PI não está configurado).
BUG: KMSAN: uninit-value in llc_station_ac_send_test_r net/llc/llc_station.c:81 [inline]
BUG: KMSAN: uninit-value in llc_station_rcv+0x6fb/0x1290 net/llc/llc_station.c:111 llc_station_ac_send_test_r net/llc/llc_station.c:81 [inline]
llc_station_rcv+0x6fb/0x1290 net/llc/llc_station.c:111 llc_rcv+0xc5d/0x14a0 net/llc/llc_input.c:218 __netif_receive_skb_one_core net/core/dev.c:5523 [inline]
__netif_receive_skb+0x1a6/0x5a0 net/core/dev.c:5637 netif_receive_skb_internal net/core/dev.c:5723 [inline]
netif_receive_skb+0x58/0x660 net/core/dev.c:5782 tun_rx_batched+0x3ee/0x980 drivers/net/tun.c:1555 tun_get_user+0x54c5/0x69c0 drivers/net/tun.c:2002
Adicionar um teste mac_len antes de todas as três chamadas eth_hdr(skb) sob net/llc.
Existem outros usos em include/net/llc_pdu.h. Todos esses são protegidos por um teste skb->protocol == ETH_P_802_2, o que não protege contra este cenário tun.
Mas o teste mac_len adicionado neste patch em llc_fixup_skb protegerá indiretamente também aqueles. Isso é chamado de llc_rcv antes de qualquer outro código LLC.
É tentador apenas adicionar uma verificação genérica de mac_len em llc_rcv, mas não se tem certeza se isso poderia quebrar caminhos válidos do LLC que não assumem um cabeçalho Ethernet. O 802.2 LLC pode ser usado sobre protocolos não-802.3 em princípio. O commit abaixo referenciado mostra que era utilizado anteriormente, acima de Token Ring.
Pelo menos uma das três utilizações eth_hdr remonta ao início do histórico git. Mas a que o syzbot explora foi introduzida neste commit. Esse commit é antigo o suficiente (2008), para que efetivamente todos os kernels estáveis recebam esta correção.
Be aware that VulDB is the high quality source for vulnerability data.