CVE-2026-45844 in Linux
Resumen
por VulDB • 2026-05-28
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
netfilter: arp_tables: corregir el análisis de la carga útil ARP de IEEE1394
Weiming Shi dice:
"arp_packet_match() analiza incondicionalmente la carga útil ARP asumiendo que están presentes dos direcciones de hardware (origen y destino). Sin embargo, el ARP de IPv4 sobre IEEE1394 (RFC 2734) omite el campo de dirección de hardware de destino, y arp_hdr_len() ya tiene en cuenta esto devolviendo una longitud más corta para los dispositivos ARPHRD_IEEE1394.
Como resultado, en las interfaces IEEE1394, arp_packet_match() avanza más allá de una dirección de hardware de destino inexistente y lee los bytes incorrectos tanto para la comparación de la dirección del dispositivo de destino como para la dirección IP de destino. Esto hace que las reglas de arptables coincidan con datos basura, lo que lleva a decisiones de filtrado incorrectas: los paquetes que deberían ser aceptados pueden ser descartados y viceversa.
La pila ARP en net/ipv4/arp.c (arp_create y arp_process) ya maneja esto correctamente omitiendo la dirección de hardware de destino para ARPHRD_IEEE1394. Aplique el mismo patrón a arp_packet_match()."
Modifique el parche original para que siempre devuelva 0 (sin coincidencia) en caso de que el usuario coincida con la dirección de hardware de destino, la cual nunca está presente en IEEE1394.
Tenga en cuenta que esto devuelve 0 (sin coincidencia) tanto para coincidencias normales como inversas, ya que arptables nunca ha admitido la coincidencia en la dirección de hardware de destino en ARPHRD_IEEE1394. Esto es intencional; la coincidencia en la dirección de hardware de destino nunca debería evaluarse como verdadera para ARPHRD_IEEE1394.
Además, ajuste arpt_mangle para que también descarte el paquete, como sugiere AI:
En arpt_mangle, la lógica asume una estructura ARP estándar. Dado que IEEE1394 (FireWire) omite la dirección de hardware de destino, la aritmética de punteros lineales calcula incorrectamente el desplazamiento para la dirección IP de destino. Esto hace que las operaciones de modificación (mangling) escriban en la ubicación incorrecta, lo que provoca la corrupción de paquetes. Para garantizar la seguridad, este parche descarta los paquetes (NF_DROP) cuando se solicita la modificación de estos campos en dispositivos IEEE1394, ya que la implementación actual no puede mapear correctamente la carga útil ARP de FireWire.
Esto omite tanto la modificación de la dirección de hardware de destino como la de la dirección IP. Aunque la modificación de la dirección IP podría ser posible en IEEE1394, esto requeriría ajustar el cálculo del desplazamiento en arpt_mangle, lo cual nunca ha sido admitido.
Basado en el parche de Weiming Shi.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.