Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAttain on-path or shared-medium position
-
DeliveryCapture valid MESSAGE_TRANSPORT_DATA UDP datagram
-
ExploitRe-inject ciphertext from attacker-controlled source address
-
ExecutionAEAD decryption succeeds, peer state mutated before replay check
-
PersistTunnel endpoint roamed to attacker address
-
ImpactVictim outbound traffic redirected until legitimate peer re-corrects
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Replay attack prevention
|
| Exploitation Conditions | Two concrete prerequisites must both be satisfied. First, the attacker must be on-path or on a shared medium relative to the WireGuard session - capable of passively capturing at least one valid encrypted MESSAGE_TRANSPORT_DATA datagram from the legitimate peer; a purely off-path attacker cannot supply the required authentic ciphertext. Second, the target node must be running Zephyr RTOS with the WireGuard subsystem compiled in and an active WireGuard session established (idle peers with no active session have no traffic to capture). No authentication credentials are required once a valid ciphertext is captured, because the handler processes inbound UDP datagrams based solely on the receiver keypair index. Limiting factors: the attack window is transient - the legitimate peer's next packet re-corrects the hijacked endpoint - so persistent redirection requires continuous replays; the attacker gains traffic redirection only (outbound packets from the victim to the attacker's address), not decryption of tunnel payload; and the attack does not apply to WireGuard implementations on other platforms (Linux, Windows, etc.), only to the Zephyr subsystem. |
| Impact | The provided CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H, score 6.5) accurately reflects the attack profile: network-reachable and requiring no credentials, but gated behind a High complexity prerequisite - the attacker must occupy an on-path or shared-medium position to capture a valid ciphertext before replaying it. No KEV listing is present and no public exploit has been identified at time of analysis, so real-world exploitation is not confirmed. The RCE tag attached to this CVE in the source data is contradicted by both the description and the fix diff, which explicitly confirm no payload decryption occurs; defenders should classify this as a traffic-redirection and session-disruption vulnerability, not code execution. The High availability rating is justified by premature keypair destruction, which forces a costly handshake to re-establish the session; the Low integrity rating reflects that the endpoint hijack is transient - the legitimate peer's next authenticated packet re-corrects the roaming state. The net risk is meaningful for IoT environments where WireGuard tunnels carry control-plane or telemetry traffic and where network adjacency is a realistic threat model (e.g., shared cellular APNs, LTE network slices, or campus Wi-Fi), but low for deployments where WireGuard peers communicate over dedicated, monitored links with no realistic on-path adversary. |
| Exploit ScenarioDerived | An attacker positioned on a shared Wi-Fi network or compromised router between two WireGuard peers passively captures a single valid MESSAGE_TRANSPORT_DATA UDP datagram from the legitimate peer. The attacker re-transmits the unchanged ciphertext with a spoofed source IP and port pointing to an attacker-controlled address; Zephyr's handler decrypts it successfully (the AEAD tag is still valid), updates the peer endpoint to the attacker's address, destroys the previous keypair, and refreshes liveness timers before the replay check fires and returns an error. The victim node's subsequent outbound WireGuard packets are then forwarded to the attacker's address until the legitimate peer sends its next authenticated packet to re-correct the roaming state. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 28, 2026
Zephyr RTOS's WireGuard VPN receive handler in wg_process_data_message() commits permanent peer-state mutations - endpoint roaming update, liveness timer refresh, and keypair promotion - before validating the anti-replay counter, allowing an on-path attacker who captures a single valid encrypted datagram to replay it from a spoofed source address and hijack the tunnel endpoint. Because AEAD decryption succeeds for any authentic ciphertext regardless of freshness, the spoofed replay is processed as legitimate and irreversibly alters peer state before the replay check fires and returns -EINVAL. No public exploit has been identified at time of analysis; patch is available via upstream commit 260c32ef.
RemediationAI
Apply upstream fix commit 260c32ef9a89824bd25e17170e77aa4b98c84069 (https://github.com/zephyrproject-rtos/zephyr/commit/260c32ef9a89824bd25e17170e77aa4b98c84069), which repositions wg_check_replay() to immediately after successful AEAD decryption and before any peer-state mutation, matching the WireGuard specification. A specific patched release version has not been independently confirmed from the available references - teams should verify whether a tagged Zephyr release incorporating this commit has been published and target that release for firmware builds. As a compensating control where firmware updates are not immediately feasible, restrict inbound UDP access to WireGuard listener ports at the network perimeter to only trusted source ranges, reducing the ability of opportunistic adversaries to inject crafted datagrams; note this does not protect against adversaries already on-path within the permitted network segment. The full security advisory is at https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-x7q7-fjx9-4vj2.
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 is an open-source RTOS (cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:*) widely used in IoT and embedded device firmware. The affected component is the WireGuard VPN data-plane in subsys/net/lib/wireguard/wg_crypto.c. CWE-294 (Authentication Bypass by Capture-Replay) is the root cause: WireGuard uses AEAD (ChaCha20-Poly1305) to authenticate packet content and integrity, but AEAD by construction does not protect against replay of previously-authenticated ciphertext - that role belongs to the anti-replay sliding window (wg_check_replay()). The WireGuard specification and the Linux kernel reference implementation both require the replay check to occur before any peer-state mutation. Zephyr's implementation inverted this ordering: update_peer_addr() (endpoint roaming), keypair_update() (promote next→current keypair and destroy previous), and last_rx liveness timers were all committed before wg_check_replay() was called. On a replayed packet, the replay check then returned -EINVAL, but without rolling back the mutations, leaving peer state permanently corrupted by the attacker-injected datagram.
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:H
On-path capture prerequisite drives AC:H; no credentials needed (PR:N); no payload decryption (C:N); endpoint hijack is transient low-integrity, keypair destruction is high-availability.
Primary rating from Vendor (zephyr).
CVSS VectorVendor: zephyr
DescriptionCVE.org
Zephyr's WireGuard VPN data-plane receive handler wg_process_data_message() in subsys/net/lib/wireguard/wg_crypto.c validated the anti-replay counter too late. After AEAD decryption of a MESSAGE_TRANSPORT_DATA packet succeeded, the code committed several peer-state changes - update_peer_addr() (endpoint roaming update), the keypair->last_rx/peer->last_rx liveness timers, and keypair_update() (promote next→current and destroy the previous keypair) - and only afterward called wg_check_replay(). On a replayed packet the replay check returned -EINVAL, but none of the preceding mutations were rolled back.
The AEAD tag authenticates content but not freshness, so a replayed-but-authentic transport packet decrypts correctly. An attacker who captures one valid ciphertext off the wire (an on-path or shared-medium observer) can re-inject it from an arbitrary spoofed source address. Reaching the handler requires no credentials: it is driven directly from inbound UDP datagrams via the dispatch in subsys/net/lib/wireguard/wg.c.
Because the state mutations committed before the replay check, the replay repoints the peer endpoint to the attacker-chosen source address (roaming hijack), redirecting the victim's subsequent outbound tunnel traffic until the legitimate peer's next packet re-corrects it; it also prematurely destroys the previous keypair and refreshes the RX liveness timer. The tunnel payload stays encrypted under the session keypair, so this is an integrity/availability impact (traffic redirection and session disruption), not payload disclosure. The fix moves wg_check_replay() to immediately after a successful decrypt, before any peer-state mutation, matching the WireGuard specification and the Linux reference implementation.
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
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
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-67946
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB