No kernel Linux, a seguinte vulnerabilidade foi resolvida: net: consome erros xmit dos quadros GSO udpgro_frglist.sh e udpgro_bench.sh são os testes mais flocos atualmente no NIPA. Eles falham da mesma forma exata, o teste TCP GRO está parado ocasionalmente e o teste é morto depois 10 min. Estes testes usam veth para simular GRO. Eles anexam um programa trivial ("retornar XDP_ PASS;") ao Veth para forçar o TSO a desligar e o NAPI a ligar. Escavando no modo de falha, podemos ver que a conexão está completamente bloqueada após uma explosão de gotas. O snd_nxt do remetente está no número de sequência N [ 1 ], mas o receptor afirma ter recebido (rcv_nxt) até N + 3 * MSS [ 2 ]. A última peça do quebra-cabeça é que a fila rtx não está vazia (vamos dizer que o bloco na fila rtx está no número de sequência N - 4 * MSS [ 3 ]). Neste estado, o remetente envia uma retransmissão da fila rtx com um único segmento, e números de sequência N- 4 * MSS: N- 3 * MSS [ 3 ]. O receptor vê-o e responde com um ACC até N + 3 * MSS [ 2 ]. Mas o remitente rejeitará este ack como TCP_ACK_UNSENT_DATA porque não tem nenhuma lembrança de enviar dados tão longe [ 1 ]. E estamos presos. A causa raiz é a bagunça dos códigos de retorno do xmit. veth retorna um erro quando não pode xmit um quadro. Acabamos com um evento de perda como este: ---------------------------------------------------------------------------- GSO super frame 1. Super quadro GSO 2 Seg --------------------------------------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg --------------- Seg 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8.---------------------------------------------- x ok ok. ok ok ok \\ snd_ nxt "x" significa pacote perdido por veth, e "ok" significa que foi por trás. Desde que o Veth tem TSO desativado neste teste, ele vê segmentos individuais. Segmento 1 está na fila de retransmissão e ficará ressentido. Então por que o remetente não avança o snd_nxt até mesmo quando ele claramente enviou para seg 8? tcp_write_xmit() interpreta o código de retorno do núcleo para significar que os dados não foram enviados. Como o TCP lida com super quadros GSO, não é um segmento individual que o principal do problema é que a perda de um único segmento pode ser interpretada como perda de todos. O TCP só vê o último código de retorno para o último segmento do quadro GSO (em <> parênteses no diagrama acima). É claro que para o problema ocorrer precisamos de uma configuração ou de um dispositivo sem Qdisc. Caso contrário, a camada Qdisc desliga completamente a camada do protocolo dos erros do dispositivo. Temos várias maneiras de corrigir isso. 1 ) fazer o veth não devolver um erro quando perdeu um pacote. Embora isso seja o que eu acho que fizemos no passado, o problema continua reaparecendo e é irritante de depurar. O jogo de bater num mole não é ótimo. 2 ) corrigir os malditos códigos de retorno Nós só falamos sobre NETDEV_TX_OK e NETDEV_TX_BUSY na documentação, então talvez devêssemos fazer o código de retorno de ndo_start_xmit() um booleano. Eu gosto mais disso, mas talvez algum protocolo antigo, não-realmente-realização de rede sofreria. 3 ) fazer o TCP ignorar os erros Não está totalmente claro para mim que benefício o TCP recebe interpretando o resultado do ip_queue_xmit()? Especificamente, uma vez que a conexão é estabelecida e estamos empurrando dados - perda de pacote é apenas perda de pacote? 4 ) esta correção Ignore o rc no caso Qdisc-less+GSO, uma vez que não é confiável. Nós já retornamos sempre OK no caso TCQ_F_CAN_BYPASS. No caso Qdisc-less, vamos ser um pouco mais conservadores e só mascarar os erros do GSO. Este caminho é tomado por redes não IP como CAN, MCTP etc, para que possamos regressar alguma coisa antiga. Este é o mais simples, mas também talvez o melhor reparo? A correção similar foi proposta pelo Eric no passado, mas nunca foi comprometida porque o repórter original estava trabalhando com um driver OOT e não estava fornecendo feedback (ver Link).

O registro de base de dados de vulnerabilidade nacional CVE- 2026 - 43194 foi publicado em 2026 - 05 - 06 T 12: 16: 38.310 Z e última modificação em 2026 - 06 - 17 T 10: 49: 07.773 Z. O seu estado gravado é analisado.

métricas de vulnerabilidade gravadas: CVSS 3.1, pontuação de base 7.5, gravidade HIGH, vetor CVSS: 3.1 /AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, pontuação de exploração 3.9, pontuação de impacto 3.6.

Classificações de fraqueza associadas: NVD- CWE- noinfo.

Os produtos ou plataformas nomeados nos dados de aplicabilidade incluem: kernel linux linux.

O registro NVD inclui referências de suporte documentando a vulnerabilidade, tecnologia afetada ou informações de remediação.