CVE-2026-80905 in Linux
Sumário
de VulDB • 04/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
net: tap: corrige o transporte incorreto (transport_header) ao enviar um quadro com tag VLAN
Em tap_get_user_xdp(), ao processar um quadro com tag VLAN (por exemplo, ETH_P_8021Q), skb_set_network_header() é chamado primeiro para avançar network_header além da tag VLAN até o cabeçalho do protocolo interno. Em seguida, skb_probe_transport_header() é chamada com skb->protocol ainda definido como ETH_P_8021Q, enquanto nhoff (derivado de skb_network_offset()) já aponta além da tag VLAN para o cabeçalho do protocolo interno.
Em __skb_flow_dissect(), proto é inicializado como ETH_P_8021Q e nhoff aponta além da tag VLAN. Quando o dissector atinge o caso ETH_P_8021Q, ele lê uma struct vlan_hdr no offset atual de nhoff via __skb_header_pointer(), mas esse offset contém o cabeçalho do protocolo interno (por exemplo, um cabeçalho IP). Os bytes são interpretados incorretamente como um cabeçalho VLAN, resultando em um EtherType encapsulado inválido que não corresponde a nenhum protocolo conhecido. O dissector retorna false, então skb_probe_transport_header() nunca chama skb_set_transport_header(), deixando transport_header com seu valor sentinela não inicializado (~0U).
Mova skb_set_network_header() para depois de skb_probe_transport_header(). No momento em que skb_probe_transport_header() é chamado, network_header ainda aponta para o cabeçalho VLAN (offset ETH_HLEN), então nhoff está correto e o dissector de fluxo pode analisar o cabeçalho VLAN, extrair o EtherType interno e avançar nhoff até o cabeçalho do protocolo interno, permitindo que transport_header seja definido corretamente.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.