Zero-Day & Exploits
FragAttacks: como um bit no Wi-Fi muda a leitura de dados cifrados
Por que autenticar dados sem proteger sua interpretação falha: A-MSDU, CVE-2020-24588, drivers, firmware, mesh e evidências de uma avaliação Wi-Fi.
Criptografar um conteúdo não basta quando um campo externo decide como esse conteúdo será interpretado. FragAttacks mostrou essa diferença no Wi-Fi: um indicador de agregação podia mudar a leitura de dados que continuavam cifrados. Para uma auditoria de protocolos, a pergunta passa a ser quais metadados fazem parte da autenticação e quais ainda controlam o parser.
A pesquisa Fragment and Forge, de Mathy Vanhoef, foi divulgada em 2021. O conjunto inclui falhas de projeto e de implementação, com condições diferentes. Este estudo se concentra na CVE-2020-24588 e nos caminhos de driver, firmware e software que precisam preservar a interpretação dos quadros. O ano do identificador não é a data desta publicação, e não se trata de um novo zero-day de 2026.
A-MSDU nos bytes: endereços, comprimento e padding
Um subquadro A-MSDU começa com endereço de destino, endereço de origem e comprimento do payload; os primeiros campos somam 14 bytes. Entre subquadros, há alinhamento em múltiplos de quatro bytes. O problema de interpretação nasce quando os mesmos bytes são tratados como uma unidade isolada ou como essa sequência de subquadros.
O parser abaixo é didático e trabalha apenas com bytes sintéticos. Não injeta quadros nem reproduz o ataque. Ele separa o comprimento do payload do tamanho total do subquadro e verifica o buffer antes de produzir uma unidade.
def subquadro(dados, inicio):
if inicio < 0 or inicio + 14 > len(dados):
raise ValueError('subquadro incompleto')
tamanho = int.from_bytes(dados[inicio + 12:inicio + 14], 'big')
fim = inicio + 14 + tamanho
if fim > len(dados):
raise ValueError('payload incompleto')
padding = (-(14 + tamanho)) % 4
return dados[inicio + 14:fim], fim, padding
quadro = bytes(12) + (3).to_bytes(2, 'big') + b'LAB'
payload, fim, padding = subquadro(quadro, 0)
assert payload == b'LAB' and fim == 17 and padding == 3
O retorno informa onde o payload termina e quanto padding seria necessário antes de outro subquadro. O último subquadro exige tratamento do final da unidade, sem exigir artificialmente um sucessor. O exemplo não implementa as regras completas de validação de endereços, segurança e entrega do driver.
No estudo, o bit de agregação interfere na escolha desse parser. A proteção criptográfica só é suficiente quando vincula também o sinal que escolhe a interpretação. Assumir que “o payload é cifrado” ignora a semântica do cabeçalho que decide como ele será dividido.
Como contramedida adicional discutida na pesquisa de 2025 dos autores, aparece a rejeição de subquadros cujo endereço de destino coincide com o prefixo RFC1042 AA:AA:03:00:00:00. Isso é um controle específico de formato; não prova que todas as variantes de FragAttacks foram corrigidas. O reteste deve identificar o mecanismo aplicado e testar separadamente cliente, AP e firmware.
O que a agregação A-MSDU realmente faz
A-MSDU permite transportar múltiplas unidades de dados dentro de um quadro. Na estrutura estudada, cada subquadro tem endereços e comprimento, seguido por seu conteúdo. Agregação reduz o custo relativo de transmitir várias unidades pequenas, mas introduz uma segunda forma de interpretar os bytes depois da recepção.
A indicação A-MSDU no controle QoS orienta essa escolha. Um receptor precisa decidir entre conteúdo de uma unidade normal e uma sequência de subquadros. Quando esse seletor não recebe a mesma proteção de integridade que os dados, a autenticação do conteúdo pode sobreviver a uma alteração de significado.
Dados recebidos
↓
Verificação da proteção do quadro
↓
Indicador de agregação
├── MSDU: uma unidade
└── A-MSDU: subquadros e comprimentos
↓
Entrega ao próximo protocolo
O diagrama é uma simplificação para revisão. Em produtos reais, partes desse processamento podem ocorrer em hardware, firmware, driver ou pilha do sistema. Descobrir qual parte executa a decisão é mais útil do que tratar o nome comercial do roteador como uma identificação completa.
Como mudar um bit pode mudar a fronteira de confiança
A explicação original de FragAttacks mostra que o indicador de agregação não autenticado podia ser alterado. Sob as condições do ataque, dados preparados para uma interpretação eram consumidos como subquadros, permitindo injeção de pacotes. Isso não significa descobrir a senha Wi-Fi ou descriptografar arbitrariamente todo o tráfego.
Para a falha de projeto original, o modelo envolve proximidade de rádio e uma posição intermediária entre cliente e ponto de acesso, além de condições sobre os dados recebidos pela vítima. Outros CVEs do conjunto têm pré-requisitos próprios. A conclusão de uma auditoria deve citar qual falha foi avaliada, qual papel o equipamento exerce e qual efeito foi observado.
A pergunta de revisão pode ser aplicada a outros protocolos: o código que autentica a mensagem e o código que escolhe sua estrutura usam exatamente os mesmos metadados? Se a resposta depende de exceções, reúna essas exceções em uma única matriz. Um campo pequeno pode ser decisivo, mesmo quando o restante do pacote contém centenas de bytes protegidos.
Falhas de projeto e falhas de implementação não são equivalentes
No conjunto original, as CVEs de projeto cobrem agregação, mistura de chaves na remontagem e manutenção indevida de fragmentos em cache. A pesquisa também identificou implementações que aceitavam quadros em claro ou combinavam fragmentos de modo inseguro. Esses resultados não autorizam afirmar que todo equipamento atualizado continua vulnerável hoje.
Um caso instrutivo é o processamento com classificações diferentes em etapas distintas: uma entrada aceita por uma exceção de handshake pode ser tratada posteriormente como dados agregados. O que interessa ao revisor é a coerência de ponta a ponta, incluindo caminhos especiais. Um parser pode validar corretamente o primeiro trecho e ainda entregar conteúdo adicional que não passou pela mesma decisão.
| Camada de análise | Pergunta | Evidência necessária |
|---|---|---|
| Projeto do protocolo | O seletor de interpretação é autenticado? | Campos protegidos e negociação real |
| Firmware e driver | Quem agrega, desmonta e entrega o quadro? | Modelo, revisão e versão carregada |
| Exceções de recepção | Quadros especiais entram no caminho de dados? | Traço que liga aceitação e entrega |
| Remontagem | Fragmentos pertencem à mesma unidade e contexto? | Identidade, chave e sequência verificadas |
| Impacto | Qual pacote chegou a qual destino? | Captura e marcador independentes |

Ilustração gerada com dispositivos genéricos para organizar o inventário de AP e clientes. A aparência dos equipamentos não comprova exposição a FragAttacks nem compatibilidade com um modo específico de captura.
O inventário precisa incluir cliente, AP e mesh
O firmware do ponto de acesso é apenas parte do inventário. Registre chipset, revisão de hardware, modo de operação, driver e firmware dos clientes representativos. Produtos com o mesmo nome podem ter componentes diferentes. Mesh, repetidores e dispositivos industriais devem aparecer como papéis separados, porque seus caminhos de dados podem divergir.
Em um cliente Linux autorizado, consultas de leitura ajudam a localizar a combinação em uso. Substitua wlan0 pela interface identificada na saída de iw dev. O resultado descreve o equipamento local, sem transmitir quadros de teste.
uname -r
iw dev
ethtool -i wlan0
readlink -f /sys/class/net/wlan0/device/driver
modinfo NOME_DO_MODULO
Confronte o inventário com a documentação do fabricante. O aviso Cisco sobre agregação e fragmentação, por exemplo, organiza produtos e correções próprios. Ele serve como fonte para aqueles produtos, sem determinar a situação de outros fabricantes.
SPP A-MSDU e a importância de testar a mitigação
SPP A-MSDU protege também a sinalização de agregação. O trabalho Fragile Frames, publicado em 2025, discute negociação e dificuldades de compatibilidade. Também analisa uma limitação da defesa baseada em endereços de subquadros em redes mesh. Uma regra criada para uma interpretação pode precisar de revisão quando outra camada acrescenta campos antes dela.
O mesmo trabalho apresenta testes sem credenciais para seis dos doze CVEs de FragAttacks, dentro de um escopo definido. Isso não equivale a uma prova universal de segurança nem a um teste sem credenciais de todos os ataques de projeto. Ao incorporar pesquisa a um procedimento profissional, preserve essa distinção.
Uma versão de firmware declarada corrigida deve vir acompanhada do aviso correspondente e, quando aplicável, de evidência da configuração negociada. Não suponha que um controle de segurança anunciado no catálogo esteja ativo em todas as combinações de cliente e AP.
Leia capturas sem confundir ausência de dados com proteção
Uma captura Ethernet depois do AP pode esconder detalhes de agregação que existiam no rádio. Antes de analisar um arquivo, confirme o encapsulamento, o ponto de coleta e o suporte do adaptador. Capturas com quadros 802.11 exigem configuração e equipamentos compatíveis; uma captura comum de aplicação não possui necessariamente esses campos.
Os campos disponíveis variam com a versão. A referência oficial de agregados do Wireshark documenta os nomes. No ambiente de análise, consulte o próprio TShark antes de montar filtros:
tshark -G fields | rg 'wlan_aggregate|amsdu|A-MSDU'
tshark -r captura-laboratorio.pcapng -Y 'wlan_aggregate' -V
O segundo comando só lê uma captura existente e depende de o dissector ter identificado agregação. Uma lista vazia pode indicar o formato errado, tráfego ausente ou campos indisponíveis. Ela não comprova resistência a FragAttacks. Anote versão da ferramenta e limitações de decodificação junto do resultado.
Laboratório: provar entrega sem tocar dados reais
Monte uma rede exclusiva com AP e cliente de teste, sem usuários ou equipamentos de produção. Use conteúdos sintéticos e um receptor de laboratório para observar apenas um marcador aleatório. O critério de sucesso deve ser uma entrega não autorizada comprovada por uma segunda observação, não uma mensagem impressa pela ferramenta que gerou o teste.
Compare o mesmo caso antes e depois da atualização. Valide também o funcionamento normal: associação, acesso ao receptor e trânsito legítimo. Quando uma transmissão não tiver efeito, investigue se o adaptador realmente emitiu o quadro pretendido. A documentação original alerta que drivers inadequados podem levar a conclusões falsas em testes de injeção.
Este desenho é uma proposta de avaliação autorizada; não foi executado contra uma rede nesta matéria. O relatório deve distinguir injeção observada, exposição plausível e acesso posterior. Controle de um serviço interno exige evidência própria, mesmo que a injeção de um pacote já tenha sido demonstrada.
O que corrigir e como fechar a avaliação
Atualize os componentes indicados pelos respectivos fabricantes e reteste os papéis relevantes. Acrescente segmentação, redução de serviços internos e TLS nas aplicações como camadas complementares. A proteção do tráfego de aplicação não substitui a correção de recepção Wi-Fi, e uma correção no AP não prova a situação de todos os clientes.
O resultado final deve relacionar CVE, papel, versões, configuração, caso testado e efeito. A ideia central para profissionais é auditar a ligação entre autenticação e interpretação. A integridade precisa cobrir os dados e os metadados que decidem o que esses dados significam.