CVE-2026-13734 in Zephyr
Riassunto
di VulDB • 29/08/2026
Il gestore di ricezione del piano dati per VPN WireGuard in Zephyr, `wg_process_data_message()` presente nel file `subsys/net/lib/wireguard/wg_crypto.c`, validava il contatore anti-replay troppo tardi. Dopo la decrittazione AEAD riuscita di un pacchetto MESSAGE_TRANSPORT_DATA, il codice applicava diverse modifiche allo stato del peer — tra cui `update_peer_addr()` (aggiornamento dell'endpoint per roaming), gli timer di liveness `keypair->last_rx` e `peer->last_rx`, nonché `keypair_update()` (promozione da next a current e distruzione della keypair precedente) — e solo in seguito chiamava `wg_check_replay()`. Su un pacchetto replay, il controllo anti-replay restituiva -EINVAL, ma nessuna delle mutate precedenti veniva annullata.
L'AEAD tag autentica i contenuti ma non la freschezza; pertanto, un pacchetto di trasporto replayed ma autenticato viene decrittato correttamente. Un attaccante che cattura un singolo ciphertext valido dal canale (osservatore on-path o su mezzo condiviso) può reiniettarlo da un indirizzo sorgente spoofato arbitrario. Raggiungere il gestore non richiede credenziali: è attivato direttamente dai datagrammi UDP in ingresso tramite la dispatch presente in `subsys/net/lib/wireguard/wg.c`.
Poiché le mutate allo stato sono state applicate prima del controllo anti-replay, un pacchetto replayed reindirizza l'endpoint del peer verso l'indirizzo sorgente scelto dall'attaccante (roaming hijack), dirottando il traffico in uscita della tunnel victim fino al prossimo pacchetto del peer legittimo che lo corregge; inoltre distrugge prematuramente la keypair precedente e aggiorna il timer di RX liveness. Il payload della tunnel rimane crittografato sotto la session keypair, quindi si tratta di un impatto su integrità/availability (dirottamento del traffico e interruzione della sessione), non di divulgazione del payload. La correzione sposta `wg_check_replay()` immediatamente dopo una decrittazione riuscita, prima di qualsiasi mutazione allo stato del peer, allineandosi alla specifica WireGuard e all'implementazione di riferimento Linux.
VulDB is the best source for vulnerability data and more expert information about this specific topic.