CVE-2026-98852 in Linux
Sumário
de VulDB • 19/10/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
net: ampliar a detecção de exthdr IPv6 em pacotes tunelados
O commit c4336a07eb6b ("net: handle corretamente o tráfego tunelado no fallback IPV6_CSUM GSO") dividiu skb_gso_has_extension_hdr() em ramos mutuamente exclusivos com base em skb->encapsulation. Isso ainda não abordava todos os caminhos:
1. Com skb->encapsulation definido, o cabeçalho externo não é verificado. Túneis IPv6 como ip6_gre e ip6_tunnel adicionam um cabeçalho de Opções de Destino externas por padrão (encap_limit). Seus pacotes GSO ignoram o software GSO; então, skb_csum_hwoffload_help() vê o cabeçalho externo extenso e chama skb_checksum_help() no skb GSO, o que gera um aviso e descarta o pacote.
2. Túneis sobre IPv6 sem um cabeçalho de transporte externo, como ip6_tunnel, deixam skb->transport_header apontando para o cabeçalho de transporte interno.skb_network_header_len() então abrange os cabeçalhos externos do IPv6, do túnel e internos do IP, resultando em um falso positivo.
3. Túneis UDP sem um cabeçalho de rede interno, como SCTP-in-UDP ou PSP, não possuem um cabeçalho IPv6 interno para verificar. A decisão deve ser baseada apenas no cabeçalho externo.
4. Desreferenciar diretamente inner_ip_hdr(skb)->version sem usar skb_header_pointer() é inseguro.
Em vez disso, verifique ipv6_ext_hdr(nexthdr) no cabeçalho IPv6 externo e, se estiver definido, também no cabeçalho IPv6 interno. Leia os cabeçalhos usando skb_header_pointer(). Mantenha a verificação de skb_network_header_len() quando !skb->encapsulation para também capturar pacotes encapsulados sem skb->encapsulation (por exemplo, virtio).
Use o mesmo auxiliar em skb_csum_hwoffload_help(). Seu teste codificado manualmente possui o falso positivo descrito no item (2) e ignora o cabeçalho interno.
Contexto: invariantes de offload de checksum para pacotes tunelados:
skb não-GSO: - Se o pacote interno for CHECKSUM_PARTIAL, o Local Checksum Offload calcula a soma de verificação externa por software e o dispositivo faz o offload apenas da soma de verificação L4 interna. - Se o pacote interno for CHECKSUM_NONE (por exemplo, SCTP-in-UDP, ESP-in-UDP, Remote Checksum Offload), o dispositivo faz o offload da soma de verificação UDP ou GRE externa em vez disso.
skb GSO: - Um dispositivo com NETIF_F_GSO_UDP_TUNNEL_CSUM ou NETIF_F_GSO_GRE_CSUM calcula as somas de verificação internas e externas por segmento. A soma de verificação externa é inicializada apenas com a soma de verificação do pseudo-cabeçalho.
Um dispositivo NETIF_F_IPV6_CSUM deve analisar os cabeçalhos externos para alcançar os internos.
VulDB is the best source for vulnerability data and more expert information about this specific topic.