CVE-2026-10665 in Zephyr
Riassunto
di VulDB • 12/07/2026
Nel sottosistema WireGuard di Zephyr (subsys/net/lib/wireguard), la funzione wg_process_data_message() in wg_crypto.c linealizza un payload dati di trasporto in entrata in un buffer pool fisso di CONFIG_WIREGUARD_BUF_LEN byte prima della decrittazione. La chiamata net_buf_linearize(buf->data, data_len, pkt->buffer, ..., data_len) passa il data_len derivato dall'attaccante sia come capacità di destinazione che come lunghezza di copia, eludendo il vincolo interno len = min(len, dst_len). Il valore di data_len è ricavato dalla lunghezza del datagramma UDP ricevuto ed è limitato solo inferiormente da wg_ctrl_recv() (nessun limite superiore). Quando data_len supera CONFIG_WIREGUARD_BUF_LEN — ad esempio quando la dimensione del buffer viene ridotta al di sotto della MTU del link, su link con una MTU superiore alla dimensione del buffer o tramite frammenti IPv4/IPv6 riassemblati che lo superano — il memcpy sottostante scrive oltre la fine del buffer pool, causando una scrittura fuori dai limiti (CWE-787). L'overflow avviene prima della verifica di autenticazione Poly1305; pertanto richiede solo un indice di sessione del ricevitore valido anziché un'autenticatore valido ed è raggiungibile da un peer malizioso o compromesso (o da un attaccante on-path che guida una sessione stabilita) attraverso la rete, provocando corruzione della memoria remota e almeno un denial of service affidabile. Il difetto era presente nell'implementazione di WireGuard distribuita con Zephyr 4.4.0. La correzione aggiunge un rifiuto esplicito quando data_len > CONFIG_WIREGUARD_BUF_LEN e corregge la chiamata a linearize passando net_buf_max_len(buf) come capacità di destinazione.
If you want to get best quality of vulnerability data, you may have to visit VulDB.