CVE-2026-10665 in Zephyr
Zusammenfassung
von VulDB • 12.07.2026
Im Subsystem „WireGuard“ von Zephyr (subsys/net/lib/wireguard) linearisiert wg_process_data_message() in wg_crypto.c eine eingehende Transportdaten-Nutzlast vor der Entschlüsselung in einen Poolpuffer fester Größe mit CONFIG_WIREGUARD_BUF_LEN Bytes. Der Aufruf net_buf_linearize(buf->data, data_len, pkt->buffer, ..., data_len) übergibt das vom Angreifer abgeleitete data_len sowohl als Zielkapazität als auch als Kopierlänge und umgeht damit die interne Begrenzung der Funktion len = min(len, dst_len). data_len wird aus der Länge des empfangenen UDP-Datagramms abgeleitet und ist nur durch wg_ctrl_recv() nach unten begrenzt (keine Obergrenze). Wenn data_len CONFIG_WIREGUARD_BUF_LEN überschreitet – beispielsweise wenn die Puffergröße unter die MTU der Verbindung abgesenkt wird, auf Verbindungen mit einer MTU über der Puffergröße oder bei reassemblierten IPv4-/IPv6-Fragmenten, die diese Größe überschreiten –, schreibt das zugrunde liegende memcpy hinter das Ende des Poolpuffers (Out-of-Bounds-Write, CWE-787). Der Overflow tritt vor der Poly1305-Authentifizierungsprüfung auf, sodass lediglich ein gültiger Receiver-Sitzungsindex und kein gültiger Authenticator erforderlich ist. Er ist für einen böswilligen oder kompromittierten Peer (oder einen On-Path-Angriff, der eine etablierte Sitzung steuert) über das Netzwerk erreichbar und führt zu einer Remote-Memory-Korruption und mindestens einem zuverlässigen Denial of Service. Der Fehler war in der mit Zephyr 4.4.0 ausgelieferten WireGuard-Implementierung vorhanden. Die Korrektur fügt eine explizite Ablehnung bei data_len > CONFIG_WIREGUARD_BUF_LEN hinzu und korrigiert den Linearize-Aufruf, um net_buf_max_len(buf) als Zielkapazität zu übergeben.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.