Skip to main content

WireGuard Easy EUVDEUVD-2026-45013

| CVE-2026-63089 CRITICAL
Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG) (CWE-338)
2026-07-16 VulnCheck GHSA-m894-wgpg-hwpv
9.0
CVSS 4.0 · Vendor: VulnCheck
Share

Severity by source

Vendor (VulnCheck) PRIMARY
9.0 CRITICAL
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:H/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
7.5 HIGH

Unauthenticated network (PR:N/AV:N) but requires racing an active OTL window (AC:H); scope changes to the VPN network (S:C), high confidentiality from key recovery (C:H), low integrity from peer impersonation (I:L).

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

3
Source Code Evidence Fetched
Jul 16, 2026 - 20:17 vuln.today
Analysis Generated
Jul 16, 2026 - 20:17 vuln.today
CVE Published
Jul 16, 2026 - 19:28 cve.org
CRITICAL 9.0

DescriptionCVE.org

WireGuard Easy through 15.3.0, fixed in commit 66b292b, contains a cryptographically weak one-time link token generation vulnerability that allows unauthenticated network attackers to recover WireGuard peer credentials by brute-forcing a keyspace of at most 1000 candidate tokens per client ID, as the token is computed using CRC32 over a random value constrained to 0-999. Attackers can enumerate candidate tokens against the unauthenticated /cnf/:oneTimeLink route, which lacks rate limiting and does not validate token expiration, to obtain a peer's PrivateKey and PresharedKey and impersonate that peer on the VPN network.

AnalysisAI

Peer credential disclosure in WireGuard Easy (wg-easy) through 15.3.0 lets unauthenticated network attackers recover a client's WireGuard PrivateKey and PresharedKey by brute-forcing the one-time configuration link. Because the OTL token is derived from CRC32 over a random value bounded to 0-999, an attacker faces at most 1000 candidate tokens per client ID against the unauthenticated /cnf/:oneTimeLink route, which had no rate limiting and did not enforce token expiration. There is no public exploit identified at time of analysis, but the small keyspace makes exploitation trivial once a valid link is active; the flaw was reported by VulnCheck and is fixed upstream.

Technical ContextAI

wg-easy is a self-hosted web UI and management layer for WireGuard VPN that generates per-peer configuration files and exposes them via 'one-time link' (OTL) download URLs. The root cause is CWE-338 (use of a cryptographically weak PRNG): the OTL token is computed as CRC32 of a randomly chosen integer constrained to the range 0-999, so the effective token space collapses to at most 1000 values per client ID. CRC32 is a non-cryptographic checksum with no keyspace expansion, so the token entropy is bounded entirely by the 0-999 seed. The affected component is cpe:2.3:a:wg-easy:wg-easy (all versions through 15.3.0). The PR diff shows the OTL service itself carried developer comments acknowledging brute-force weakness ('This is known to be vulnerable to brute force attacks'), and that the download route (/cnf/[oneTimeLink].ts) did not check otl.expiresAt before serving the config, compounding the weak-token issue by leaving expired tokens redeemable.

RemediationAI

Upstream fix available (PR/commit); released patched version not independently confirmed - update wg-easy to a build that includes commit 66b292b (PR #2661) via https://github.com/wg-easy/wg-easy/commit/66b292b11bde3664f05ffb016c8082665d261ded, which adds server-side expiration enforcement on the /cnf/:oneTimeLink route (rejecting expired links with HTTP 410) and hardens session handling. Until you can upgrade, remove the wg-easy admin/download interface from untrusted networks by binding it to localhost or placing it behind a VPN or authenticated reverse proxy, and add rate limiting (for example via nginx limit_req) in front of the /cnf/ path to blunt the 1000-token brute force; the trade-off is that legitimate remote self-service config downloads become harder. Operationally, avoid generating one-time links unless immediately needed and treat any peer whose OTL was exposed as potentially compromised - rotate that peer's WireGuard PrivateKey and PresharedKey. Refer to the VulnCheck advisory (https://www.vulncheck.com/advisories/wireguard-easy-weak-token-generation-information-disclosure-via-otl-route) for details.

Share

EUVD-2026-45013 vulnerability details – vuln.today

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