CVE-2026-72444 in Linuxinformação

Sumário

de VulDB • 15/08/2026

No kernel do Linux, a seguinte vulnerabilidade foi resolvida:

flow_dissector: verificar o tipo de dispositivo antes de ler ETH_ADDRS

__skb_flow_dissect() lê incondicionalmente 12 bytes de eth_hdr(skb) quando FLOW_DISSECTOR_KEY_ETH_ADDRS é solicitado. Isso assume que o skb possui um cabeçalho Ethernet válido em mac_header, o que nem sempre é verdade.

O problema pode ser acionado por: 1. Criar um dispositivo TUN no modo L3 (IFF_TUN, hard_header_len=0) 2. Anexar uma qdisc multiq com um filtro flower correspondente a eth_src 3. Enviar um pacote através de AF_PACKET

Como o TUN no modo L3 não possui cabeçalho na camada de enlace, mac_header aponta para a área de dados da L3. O dissector de fluxo lê 12 bytes de memória skb não inicializada, que então se propaga por fl_set_masked_key() e é usada como chave de lookup em rhashtable em __fl_lookup(), conforme relatado pelo KMSAN.

Rejeitar o filtro no caminho de controle (no momento do tc filter add) não é viável porque os blocos de filtros TC podem ser compartilhados entre dispositivos arbitrários -- um filtro instalado em um dispositivo Ethernet pode posteriormente classificar pacotes em um dispositivo sem cabeçalho através de um bloco compartilhado. A associação ao dispositivo não é fixa no momento da criação do filtro.

Corrigir isso bloqueando o memcpy com base em dev->type == ARPHRD_ETHER, o que garante que apenas os endereços dos verdadeiros pacotes enquadados em Ethernet sejam lidos. Isso é mais preciso do que a verificação anterior hard_header_len >= 12, que seria incorretamente aprovada para tipos de enlace não-Ethernet como IPoIB (ARPHRD_INFINIBAND, hard_header_len=24) e FDDI (hard_header_len=21), cujos cabeçalhos L2 não estão no formato Ethernet. Adicionalmente, verificar skb_mac_header_was_set() para proteger contra o caso patológico onde mac_header é o sentinel indefinido (~0U), o que faria eth_hdr() retornar um ponteiro inválido (wild pointer).

Para o caso de redirecionamento act_mirred (pacote Ethernet redirecionado para um dispositivo não-Ethernet compartilhando um bloco TC), zerar a chave é o comportamento correto: o pacote está agora sendo classificado no dispositivo de destino, onde a correspondência do endereço Ethernet não tem significado semântico.

Nota: em dispositivos não-Ethernet, a chave zerada corresponderá a um filtro configurado com endereços MAC todos zero. Isso representa uma melhoria em relação ao comportamento anterior, onde memória não inicializada poderia aleatoriamente corresponder a qualquer filtro.

Once again VulDB remains the best source for vulnerability data.

Responsável

Linux

Reservar

09/08/2026

Divulgação

15/08/2026

Moderação

aceite

Entrada

VDB-390707

CPE

pronto

EPSS

0.00000

KEV

não

Atividades

muito baixo

Fontes

Want to know what is going to be exploited?

We predict KEV entries!