CVE-2026-13735
Awaiting Analysis Awaiting Analysis - Queue

WireGuard Keepalive Packet Authentication Bypass in Zephyr RTOS

Vulnerability report for CVE-2026-13735, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-08-28

Last updated on: 2026-09-01

Assigner: Zephyr Project

Description

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.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-08-28
Last Modified
2026-09-01
Generated
2026-09-18
AI Q&A
2026-08-29
EPSS Evaluated
2026-09-15
NVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
zephyr wireguard to 16 (exc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-290 This attack-focused weakness is caused by incorrectly implemented authentication schemes that are subject to spoofing attacks.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability involves Zephyr's WireGuard implementation incorrectly handling keepalive packets. Attackers could send specially crafted 16-byte messages that bypass authentication checks, causing the system to falsely signal a VPN connection without verifying the message's integrity. The issue stems from a missing Poly1305 tag verification before processing keepalives.

Detection Guidance

This vulnerability involves unauthenticated WireGuard keepalive packets being accepted without proper verification. To detect it, monitor for unexpected NET_EVENT_VPN_CONNECTED signals or keepalive-RX statistic increments on affected systems. Check WireGuard logs for malformed or unusually frequent keepalive packets.

Impact Analysis

The impact is limited to integrity issues where an attacker can spoof a VPN connection status signal. It does not allow decryption of traffic, session hijacking, or data injection. The false signal may mislead monitoring systems but does not compromise confidentiality or availability.

Compliance Impact

This vulnerability does not directly impact GDPR or HIPAA compliance as it only affects the integrity of a status signal (NET_EVENT_VPN_CONNECTED) without exposing plaintext data, disclosing keys, or causing traffic injection. The issue is limited to unauthenticated keepalive packets being accepted, which does not involve sensitive data exposure or unauthorized access.

Mitigation Strategies

Apply the official patch from Zephyr that removes the early return path for keepalive packets. Ensure WireGuard peers are updated to a fixed version. Monitor network traffic for suspicious keepalive activity and verify no unauthorized VPN connection signals are being triggered.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-13735. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart