Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObserve cleartext WireGuard receiver index
-
DeliveryCraft 16-byte UDP payload with valid receiver index
-
ExploitSend forged packet to WireGuard UDP port
-
ExecutionTrigger pre-decrypt early-return in wg_process_data_message()
-
PersistBypass Poly1305 authentication entirely
-
ImpactSpoof NET_EVENT_VPN_CONNECTED management event
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Anti-spoofing controls
MITRE ATT&CK
1 technique across 1 tactic: Defense Evasion The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an active WireGuard session on the target Zephyr device with a non-expired peer keypair for the targeted receiver index - without a live session, |
| Impact | The vendor-assigned CVSS 3.1 score of 3.7 (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N) is well-calibrated to the actual impact. The High Attack Complexity (AC:H) reflects the off-path brute-force requirement or on-path observation prerequisite; PR:N accurately captures that no session credentials are required - only knowledge of the receiver index. The impact ceiling of I:L reflects that the only consequence is a spoofed |
| Exploit ScenarioDerived | An attacker positioned on the same network path as a Zephyr device running WireGuard passively observes the cleartext 32-bit receiver index from a legitimate WireGuard handshake or data packet. The attacker then crafts a 16-byte UDP payload - a garbage 16-byte buffer - addressed to the WireGuard port with that receiver index, which the unpatched device accepts without performing any Poly1305 tag verification, causing it to emit a spoofed |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 28, 2026
Zephyr RTOS's WireGuard subsystem incorrectly bypasses Poly1305 authentication for keepalive packets, allowing a network attacker to spoof VPN connection status events on affected embedded devices. The flaw in wg_process_data_message() accepted any 16-byte type-4 transport-data message and returned before invoking wg_decrypt_packet(), meaning the Poly1305 MAC was never verified - only a cleartext receiver-index lookup and a non-cryptographic expiry check were performed. Exploitation is constrained to integrity spoofing of the NET_EVENT_VPN_CONNECTED management signal; no traffic injection, key disclosure, or session takeover is possible, and no public exploit has been identified at time of analysis.
RemediationAI
Apply the upstream fix available at commit 87c520a55f0f0e7cd4adf8780166e45eaad6d81c (https://github.com/zephyrproject-rtos/zephyr/commit/87c520a55f0f0e7cd4adf8780166e45eaad6d81c), which removes the pre-decrypt early return for 16-byte payloads so keepalive messages flow through wg_decrypt_packet() for full Poly1305 AEAD verification and anti-replay checking before any management event is raised. The specific patched release version is not confirmed in available data - consult the Zephyr security advisory at https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-xxrw-r78f-f6mx for release-tag details. As a compensating control where patching is not immediately feasible, restrict inbound UDP traffic on the WireGuard port to known peer IP addresses at the network perimeter, which eliminates the off-path brute-force vector but does not protect against on-path attackers who can observe the cleartext receiver index. Additionally, if NET_EVENT_VPN_CONNECTED events drive security-sensitive application logic, treat that signal as advisory only until the fix is applied, requiring secondary verification of VPN state before acting on it.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Zephyr RTOS is an open-source real-time operating system for IoT and embedded systems; its WireGuard implementation (CPE: cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:*) is located in subsys/net/lib/wireguard/wg_crypto.c. WireGuard uses ChaCha20-Poly1305 AEAD for transport-data messages; a keepalive is defined as a message whose decrypted plaintext is empty, leaving only the 16-byte Poly1305 authentication tag in the ciphertext field. The root cause is CWE-290 (Authentication Bypass by Spoofing): the pre-patch code short-circuited on payload length (== 16 bytes) before the cryptographic path, relying solely on get_peer_keypair_for_index() - which operates on the attacker-supplied cleartext receiver field of the data header - and a non-cryptographic keypair validity and expiry check. Because WireGuard transmits the 32-bit receiver index in cleartext during handshake and data messages, it is directly observable by any on-path observer and brute-forceable by off-path attackers against the UDP port during an active session.
Know when Zephyr gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
Network-reachable via UDP with no credentials required, but AC:H due to mandatory active-session receiver-index prerequisite; I:L only as impact is a spoofed management event with no data or traffic consequence.
Primary rating from Vendor (zephyr).
CVSS VectorVendor: zephyr
DescriptionCVE.org
Zephyr's WireGuard implementation in subsys/net/lib/wireguard/wg_crypto.c mishandled keepalive packets. In wg_process_data_message(), any type-4 transport-data message whose payload was exactly 16 bytes (an empty plaintext plus a bare Poly1305 tag, i.e. a keepalive) was accepted and returned immediately, before wg_decrypt_packet() was ever called. The Poly1305 authentication tag was therefore never verified; the only preceding gates were a cleartext receiver-index lookup (get_peer_keypair_for_index() on the attacker-supplied data_hdr->receiver) and a non-cryptographic keypair validity/expiry check.
The path is reachable entirely from the network: inbound UDP on the WireGuard port is dispatched by wg_input() to handle_transport_data() and then wg_process_data_message(). The 32-bit receiver index is transmitted in cleartext in WireGuard handshake and data messages, so an on-path observer learns it directly and an off-path attacker can brute-force it against the UDP port. Given an active receiving-valid session for that index, an attacker could send a 16-byte garbage payload and have it accepted without possessing the session key.
On acceptance the unauthenticated message caused the management layer to observe a spoofed NET_EVENT_VPN_CONNECTED signal (setting peer->first_valid and notifying any net_mgmt listener) and incremented the keepalive-RX statistic. The impact is limited to integrity of this status signal: no plaintext is decrypted or injected, no key is disclosed, and the early-return path did not update the peer endpoint or liveness timers, so there is no traffic-injection, session-takeover, or availability consequence.
The fix removes the pre-decrypt early return so a 16-byte payload flows through wg_decrypt_packet(), which verifies the Poly1305 tag over the empty plaintext, followed by the existing anti-replay check; only an authenticated, non-replayed message is then recognised as a keepalive. Forged keepalives now fail the tag check and are counted as decrypt failures.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Potential off-by-one buffer overflow vulnerability in the Zephyr fuse file system. Rated critical severity (CVSS 10.0),
An out-of-bounds write in the Zephyr RTOS DNS resolver (dns_unpack_name()) lets a crafted DNS response corrupt memory on
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
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
EUVD-2026-67947
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB