CVE-2026-45844 in Linux
Sumário
de VulDB • 27/05/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
netfilter: arp_tables: corrige a análise do payload ARP IEEE1394
Weiming Shi afirma:
"arp_packet_match() analisa incondicionalmente o payload ARP assumindo que dois endereços de hardware estão presentes (origem e destino). No entanto, o ARP IPv4-over-IEEE1394 (RFC 2734) omite o campo de endereço de hardware de destino, e arp_hdr_len() já leva isso em conta ao retornar um comprimento menor para dispositivos ARPHRD_IEEE1394.
Como resultado, nas interfaces IEEE1394, arp_packet_match() avança além de um endereço de hardware de destino inexistente e lê os bytes incorretos tanto para a comparação do endereço do dispositivo de destino quanto para o endereço IP de destino. Isso faz com que as regras arptables correspondam a dados incorretos, levando a decisões de filtragem erradas: pacotes que deveriam ser aceitos podem ser descartados e vice-versa.
A pilha ARP em net/ipv4/arp.c (arp_create e arp_process) já lida com isso corretamente, pulando o endereço de hardware de destino para ARPHRD_IEEE1394. Aplique o mesmo padrão a arp_packet_match()."
Modifique o patch original para sempre retornar 0 (sem correspondência) caso o usuário tente corresponder ao endereço de hardware de destino, que nunca está presente no IEEE1394.
Observe que isso retorna 0 (sem correspondência) tanto para correspondência normal quanto inversa, pois a correspondência no endereço de hardware de destino em ARPHRD_IEEE1394 nunca foi suportada pelo arptables. Isso é intencional; a correspondência no endereço de hardware de destino nunca deve ser avaliada como verdadeira para ARPHRD_IEEE1394.
Além disso, ajuste arpt_mangle para descartar o pacote também, conforme sugerido por AI:
Em arpt_mangle, a lógica assume um layout ARP padrão. Como o IEEE1394 (FireWire) omite o endereço de hardware de destino, a aritmética de ponteiros lineares calcula incorretamente o deslocamento para o endereço IP de destino. Isso faz com que as operações de modificação (mangling) escrevam no local errado, levando à corrupção do pacote. Para garantir a segurança, este patch descarta pacotes (NF_DROP) quando a modificação é solicitada para esses campos em dispositivos IEEE1394, pois a implementação atual não pode mapear corretamente o payload ARP do FireWire.
Isso omite tanto a modificação do endereço de hardware de destino quanto do endereço IP. Mesmo que a modificação do endereço IP seja possível no IEEE1394, isso exigiria ajustar o cálculo de deslocamento do arpt_mangle, o que nunca foi suportado.
Baseado no patch de Weiming Shi.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.