Katalog CVE

CVE-2026-10665

WysokieCVSS 7.4
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.38%

Percentyl 30 - wyżej niż 30% wszystkich znanych CVE

Streszczenie

W podsystemie WireGuard w Zephyrze (subsys/net/lib/wireguard) funkcja wg_process_data_message() w pliku wg_crypto.c linearyzuje przychodzący ładunek transportowy do stałego bufora puli o rozmiarze CONFIG_WIREGUARD_BUF_LEN przed deszyfrowaniem. Wywołanie net_buf_linearize() przekazuje pochodzący od atakującego rozmiar data_len jako zarówno pojemność docelową, jak i długość kopii, co omija wewnętrzne ograniczenie funkcji. Gdy data_len przekracza CONFIG_WIREGUARD_BUF_LEN, dochodzi do zapisu poza buforem (CWE-787).

Ocena ryzyka

Atakujący (złośliwy lub skompromitowany peer, lub atakujący w ścieżce sieciowej dla istniejącej sesji) może zdalnie spowodować uszkodzenie pamięci, prowadząc co najmniej do pewnej odmowy usługi (DoS). Podatność jest osiągalna przed weryfikacją uwierzytelnienia Poly1305, więc wymaga jedynie ważnego indeksu sesji odbiorcy.

Rekomendacja

Należy natychmiast zaktualizować Zephyr do wersji zawierającej poprawkę, która dodaje jawne odrzucenie data_len > CONFIG_WIREGUARD_BUF_LEN oraz koryguje wywołanie linearize, przekazując net_buf_max_len(buf) jako pojemność docelową.

Powiązane podatności

Oryginalny opis (angielski, źródło NVD)

In Zephyr's WireGuard subsystem (subsys/net/lib/wireguard), wg_process_data_message() in wg_crypto.c linearizes an inbound transport-data payload into a fixed pool buffer of CONFIG_WIREGUARD_BUF_LEN bytes before decryption. The call net_buf_linearize(buf->data, data_len, pkt->buffer, ..., data_len) passed the attacker-derived data_len as both the destination capacity and the copy length, defeating the function's internal len = min(len, dst_len) bound. data_len is derived from the received UDP datagram length and is only lower-bounded by wg_ctrl_recv() (no upper bound). When data_len exceeds CONFIG_WIREGUARD_BUF_LEN — e.g. when the buffer length is lowered below the link MTU, on links with MTU above the buffer size, or via reassembled IPv4/IPv6 fragments that exceed it — the underlying memcpy writes past the end of the pool buffer, an out-of-bounds write (CWE-787). The overflow occurs before the Poly1305 authentication check, so it requires only a valid receiver session index rather than a valid authenticator, and is reachable by a malicious or compromised peer (or an on-path attacker driving an established session) over the network, yielding remote memory corruption and at minimum a reliable denial of service. The defect was present in the WireGuard implementation shipped in Zephyr 4.4.0. The fix adds an explicit data_len > CONFIG_WIREGUARD_BUF_LEN rejection and corrects the linearize call to pass net_buf_max_len(buf) as the destination capacity.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS