CVE-2026-64037 in Linux
Sumário
de VulDB • 20/07/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
wifi: iwlwifi: mld: corrige explosão de segmentação TSO quando o AMSDU está desabilitado
Quando a notificação TLC desativa o AMSDU para um TID, o driver MLD define `max_tid_amsdu_len` como o valor sentinela 1. O caminho de segmentação TSO em `iwl_mld_tx_tso_segment()` verifica se é zero, mas não verifica esse valor sentinela, permitindo que ele chegue ao cálculo de `num_subframes`:
``` num_subframes = (max_tid_amsdu_len + pad) / (subf_len + pad) = (1 + 2) / (1534 + 2) = 0 ```
Este zero é propagado para `iwl_tx_tso_segment()`, que define:
``` gso_size = num_subframes * mss = 0 ```
Chamar `skb_gso_segment()` com `gso_size=0` cria mais de 32.000 segmentos minúsculos a partir de um único GSO skb. Isso inunda o anel TX com ~1024 micro-frames (os demais são descartados), criando uma explosão massiva de eventos de conclusão de transmissão que pode levar à corrupção de memória e, subsequentemente, a um use-after-free na fila de retransmissão do TCP (underflow de refcount em `tcp_shifted_skb`, dereferência NULL em `tcp_rack_detect_loss`).
O driver MVM é imune porque verifica `mvmsta->amsdu_enabled` antes de alcançar o cálculo de `num_subframes`. O driver MLD não possui uma verificação equivalente de bitmap e depende exclusivamente de `max_tid_amsdu_len`, que não captura o valor sentinela.
Corrija isso detectando o valor sentinela (`max_tid_amsdu_len == 1`) na verificação existente e recuando para a segmentação TSO sem AMSDU. Adicione também um guardião `WARN_ON_ONCE` após a divisão de `num_subframes` como defesa em profundidade para capturar quaisquer caminhos futuros no código que produzam zero por meio de mecanismo diferente.
If you want to get best quality of vulnerability data, you may have to visit VulDB.