Severity by source
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:H
Network-reachable via UDP (AV:N); only a session index, not an authenticator, is needed pre-auth (PR:N); overflow needs non-default buffer/MTU or fragment conditions (AC:H); memory corruption and DoS give I:H/A:H with no disclosure (C:N).
Primary rating from Vendor (zephyr).
CVSS VectorVendor: zephyr
Lifecycle Timeline
1DescriptionCVE.org
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.
AnalysisAI
Out-of-bounds write in the WireGuard subsystem of Zephyr RTOS 4.4.0 lets a malicious or compromised WireGuard peer (or an on-path attacker driving an established session) corrupt memory by sending an oversized transport-data datagram. Because the flawed copy occurs before the Poly1305 authentication check, exploitation needs only a valid receiver session index rather than a valid authenticator, and reliably yields at least a remote denial of service on the target device. There is no public exploit identified at time of analysis and the issue is not listed in CISA KEV; the Zephyr project has published advisory GHSA-3wqm-wgx2-9367 and an upstream fix.
Technical ContextAI
Zephyr is a widely-used open-source real-time operating system for resource-constrained embedded and IoT devices. The defect lives in its optional WireGuard VPN subsystem (subsys/net/lib/wireguard), specifically wg_process_data_message() in wg_crypto.c, which linearizes a fragmented inbound network buffer into a fixed pool buffer of CONFIG_WIREGUARD_BUF_LEN bytes prior to ChaCha20-Poly1305 decryption. The root cause (CWE-787, out-of-bounds write) is that net_buf_linearize() is called with the attacker-influenced data_len passed as BOTH the destination capacity and the copy length, which defeats the function's internal len = min(len, dst_len) safety clamp; the underlying memcpy then writes past the pool buffer. data_len originates from the received UDP datagram length and is only lower-bounded (never upper-bounded) by wg_ctrl_recv(). The affected component is identified by CPE cpe:2.3:a:zephyrproject:zephyr, and the fix both adds an explicit data_len > CONFIG_WIREGUARD_BUF_LEN rejection and passes net_buf_max_len(buf) as the true destination capacity.
RemediationAI
Apply the upstream fix from commit 6d8bb28dc9064e05e52b5a00b2998ecc663e38cb (https://github.com/zephyrproject-rtos/zephyr/commit/6d8bb28dc9064e05e52b5a00b2998ecc663e38cb), which adds an explicit data_len > CONFIG_WIREGUARD_BUF_LEN rejection and corrects the linearize call to use net_buf_max_len(buf) as the destination capacity; the corresponding advisory is GHSA-3wqm-wgx2-9367. Upstream fix is available as a commit; a specific released/tagged patched version is not independently confirmed from the input, so rebuild firmware from a tree that includes this commit. If you cannot rebuild immediately, compensating controls include ensuring CONFIG_WIREGUARD_BUF_LEN is set at least as large as the link MTU so a single unfragmented datagram cannot exceed the buffer (trade-off: higher static memory use per pool buffer on constrained devices), disabling IPv4/IPv6 fragment reassembly on the WireGuard-facing interface to remove the oversized-reassembly path (trade-off: legitimate large fragmented traffic will be dropped), and disabling the WireGuard subsystem entirely if it is not in use (trade-off: loss of VPN functionality). Restricting which peers can establish sessions and network-segmenting the device also reduces the attacker set.
Potential off-by-one buffer overflow vulnerability in the Zephyr fuse file system. Rated critical severity (CVSS 10.0),
Possible variant of CVE-2021-3434 in function le_ecred_reconf_req. Rated critical severity (CVSS 9.8), this vulnerabilit
Unchecked user input length in /subsys/net/l2/wifi/wifi_shell.c can cause buffer overflows. Rated critical severity (CVS
Potential buffer overflow vulnerability in the Zephyr CAN bus subsystem. Rated critical severity (CVSS 9.8), this vulner
Integer Underflow in 6LoWPAN IPHC Header Uncompression in Zephyr. Rated critical severity (CVSS 9.8), this vulnerability
Buffer overflow in Zephyr USB DFU DNLOAD. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable
DOS: Incorrect 802154 Frame Validation for Omitted Source / Dest Addresses. Rated critical severity (CVSS 9.8), this vul
zephyr-rtos version 1.12.0 contains a NULL base pointer reference vulnerability in sys_ring_buf_put(), sys_ring_buf_get(
Potential buffer overflow vulnerabilities n the Zephyr Bluetooth subsystem. Rated critical severity (CVSS 9.6), this vul
Buffer overflow in Zephyr RTOS dns_unpack_name() function causing OOB writes. PoC available.
The documentation specifies that the BT_GATT_PERM_READ_LESC and BT_GATT_PERM_WRITE_LESC defines for a Bluetooth characte
Potential buffer overflows in the Bluetooth subsystem due to asserts being disabled in /subsys/bluetooth/host/hci_core.c
Same weakness CWE-787 – Out-of-bounds Write
View allSame technique Buffer Overflow
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-43242