Skip to main content

Zephyr RTOS EUVDEUVD-2026-67947

| CVE-2026-13735 LOW
Authentication Bypass by Spoofing (CWE-290)
2026-08-28 zephyr
3.7
CVSS 3.1 · Vendor: zephyr
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Observe cleartext WireGuard receiver index
  2. Delivery
    Craft 16-byte UDP payload with valid receiver index
  3. Exploit
    Send forged packet to WireGuard UDP port
  4. Execution
    Trigger pre-decrypt early-return in wg_process_data_message()
  5. Persist
    Bypass Poly1305 authentication entirely
  6. Impact
    Spoof 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, get_peer_keypair_for_index() will fail and the message is dropped before the vulnerable early-return path. An on-path attacker obtains the receiver index by observing cleartext WireGuard handshake or data traffic; an off-path attacker must brute-force the 32-bit index space (approximately 4 billion values) against the WireGuard UDP port while a valid session is active, which is resource-intensive but not computationally infeasible. The Zephyr WireGuard subsystem must be compiled and enabled in the firmware build. Exploitation is strictly limited to spoofing NET_EVENT_VPN_CONNECTED and incrementing keepalive statistics; it does not enable plaintext decryption, traffic injection, peer endpoint update, session key disclosure, or availability impact.

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 NET_EVENT_VPN_CONNECTED management event and an incremented keepalive-RX counter, with no effect on liveness timers, peer endpoint state, or actual network traffic. No EPSS score, CISA KEV listing, or public POC was available in the provided data, so exploitation status cannot be assessed quantitatively. Real-world risk is primarily elevated in Zephyr-based embedded systems where the NET_EVENT_VPN_CONNECTED event drives downstream access-control or network-policy logic - in those deployments, a false 'connected' signal could cause a device to trust a VPN path that was never cryptographically established. Outside that narrow application pattern, the practical impact is negligible.

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 NET_EVENT_VPN_CONNECTED event and update keepalive statistics, potentially misleading application logic that gates network access on VPN connectivity state.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Zephyr 4.4.0 <4.4.2

Affected Packages

euvd zephyr fix: 4.4.2

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

Vendor (zephyr) PRIMARY 3.7 LOW
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
vuln.today AI 3.7 LOW

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.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (zephyr).

CVSS VectorVendor: zephyr

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
None

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

EPSS Score
0.2%
Top 84% exploitable
Prevalence
Low
niche embedded RTOS used primarily in IoT devices
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

18
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +18
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

More in Zephyr

View all
CVE-2023-4260 CRITICAL POC
10.0 Sep 27

Potential off-by-one buffer overflow vulnerability in the Zephyr fuse file system. Rated critical severity (CVSS 10.0),

CVE-2026-1678 CRITICAL POC
9.8 Mar 05

An out-of-bounds write in the Zephyr RTOS DNS resolver (dns_unpack_name()) lets a crafted DNS response corrupt memory on

CVE-2023-5055 CRITICAL POC
9.8 Nov 21

Possible variant of CVE-2021-3434 in function le_ecred_reconf_req. Rated critical severity (CVSS 9.8), this vulnerabilit

CVE-2023-4257 CRITICAL POC
9.8 Oct 13

Unchecked user input length in /subsys/net/l2/wifi/wifi_shell.c can cause buffer overflows. Rated critical severity (CVS

CVE-2023-3725 CRITICAL POC
9.8 Oct 06

Potential buffer overflow vulnerability in the Zephyr CAN bus subsystem. Rated critical severity (CVSS 9.8), this vulner

CVE-2021-3323 CRITICAL POC
9.8 Oct 12

Integer Underflow in 6LoWPAN IPHC Header Uncompression in Zephyr. Rated critical severity (CVSS 9.8), this vulnerability

CVE-2021-3625 CRITICAL POC
9.8 Oct 05

Buffer overflow in Zephyr USB DFU DNLOAD. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable

CVE-2021-3319 CRITICAL POC
9.8 Oct 05

DOS: Incorrect 802154 Frame Validation for Omitted Source / Dest Addresses. Rated critical severity (CVSS 9.8), this vul

CVE-2018-1000800 CRITICAL POC
9.8 Sep 06

zephyr-rtos version 1.12.0 contains a NULL base pointer reference vulnerability in sys_ring_buf_put(), sys_ring_buf_get(

CVE-2023-4264 CRITICAL POC
9.6 Sep 27

Potential buffer overflow vulnerabilities n the Zephyr Bluetooth subsystem. Rated critical severity (CVSS 9.6), this vul

CVE-2024-1638 CRITICAL POC
9.1 Feb 19

The documentation specifies that the BT_GATT_PERM_READ_LESC and BT_GATT_PERM_WRITE_LESC defines for a Bluetooth characte

CVE-2023-5753 HIGH POC
8.8 Oct 25

Potential buffer overflows in the Bluetooth subsystem due to asserts being disabled in /subsys/bluetooth/host/hci_core.c

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy