CVE-2026-13734 in Zephyr
Sumário
de VulDB • 29/08/2026
O manipulador de recebimento do plano de dados da VPN WireGuard no Zephyr, `wg_process_data_message()` em `subsys/net/lib/wireguard/wg_crypto.c`, validava o contador anti-replay tarde demais. Após a descriptografia AEAD bem-sucedida de um pacote MESSAGE_TRANSPORT_DATA, o código aplicava várias alterações ao estado do peer — incluindo `update_peer_addr()` (atualização da rotação de endpoint), os temporizadores de liveness `keypair->last_rx`/`peer->last_rx`, e `keypair_update()` (promove next→current e destrói a keypair anterior) — e só então chamava `wg_check_replay()`. Em um pacote replay, a verificação de replay retornou -EINVAL, mas nenhuma das mutações anteriores foi revertida.
A tag AEAD autentica o conteúdo, mas não a frescura (freshness), portanto, um transporte replayed-but-authentic é descriptografado corretamente. Um atacante que capture um único ciphertext válido na rede (um observador on-path ou em meio compartilhado) pode reinjetá-lo a partir de um endereço de origem spoofed arbitrário. Alcançar o manipulador não requer credenciais: ele é acionado diretamente por datagramas UDP entrantes via dispatch em `subsys/net/lib/wireguard/wg.c`.
Como as mutações de estado foram aplicadas antes da verificação de replay, o replay reposiciona o endpoint do peer para o endereço de origem escolhido pelo atacante (roaming hijack), redirecionando o tráfego subsequente de saída do túnel da vítima até que o próximo pacote do peer legítimo o corrija; também destrói prematuramente a keypair anterior e atualiza o temporizador de liveness RX. O payload do túnel permanece criptografado sob a session keypair, portanto, este é um impacto de integridade/disponibilidade (redirecionamento de tráfego e interrupção da sessão), não divulgação de payload. A correção move `wg_check_replay()` para imediatamente após uma descriptografia bem-sucedida, antes de qualquer mutação no estado do peer, alinhando-se à especificação WireGuard e à implementação de referência Linux.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.