Engineer working on a laptop connected to a device test rig, surrounded by wiring harnesses and test hardware

Firmware vulnerabilities & fixes

OpenVPN, strongSwan and WireGuard vulnerabilities in embedded firmware: identify, prioritise and fix

Last updated:

OpenVPN, strongSwan, libreswan and WireGuard vulnerabilities in router, gateway and industrial remote-access firmware fall into three groups: memory and state bugs in the VPN daemons (strongSwan 6.1.0 fixed eleven on 2026-09-07), authentication flaws in plugins and certificate handling, and weak shipped defaults such as IKEv1 Aggressive Mode with a pre-shared key. To act on them, find which stack and version the image ships, check which plugins and modes are enabled, rank by reachability, then upgrade, backport and harden the defaults.

Key takeaways

  • Because the VPN daemon is often the only service a device deliberately exposes to the internet.
  • Read the package database, confirm against the binaries, then record the build variant and the enabled modes.
  • The ones a remote peer can reach before or during authentication, the ones that break authentication itself, and the ones in plugins your build actually loads.
  • Each project publishes its own list, and the format tells you how to automate tracking.

Why do VPN components matter in embedded firmware?

Because the VPN daemon is often the only service a device deliberately exposes to the internet. A branch router, a 4G/5G industrial gateway or a machine builder's remote-access box listens on UDP 500 and 4500 for IKE, on 1194 for OpenVPN or on 51820 for WireGuard, and it has to parse packets from anyone before it knows who they are. Several of the bugs below sit exactly there: strongSwan's CVE-2023-41913 advisory describes a stack buffer overflow reachable through "a specially crafted and unauthenticated IKE_SA_INIT message", and libreswan's CVE-2026-77206 advisory says a malicious IKE_AUTH packet can crash pluto without the peer being authenticated.

Embedded images also tend to carry these components as prebuilt packages from a feed, not as code the device maker reviews. On OpenWrt and the many vendor SDKs derived from it, OpenVPN, strongSwan and libreswan come from the community packages feed and WireGuard comes from the kernel, so the version a product ships is whatever the feed or SDK held when the firmware was frozen.

How do you find which VPN stack and version an image ships?

Read the package database, confirm against the binaries, then record the build variant and the enabled modes. The order matters because package versions on OpenWrt-style images can lag or lead the upstream release, and the binary is what actually runs.

  1. Unpack the imageExtract the SquashFS, UBIFS or ext4 root file system. If parts will not unpack, our firmware entropy analysis guide covers telling encryption from compression.
  2. Read the package databaseOlder OpenWrt-based images keep installed packages in the opkg status file, /usr/lib/opkg/status; OpenWrt's build system for current releases writes an apk database under /lib/apk/; Debian-based gateways use /var/lib/dpkg/status. Look for openvpn-openssl, openvpn-mbedtls or openvpn-wolfssl, strongswan-* packages (strongswan-charon, strongswan-mod-*), libreswan, wireguard-tools and kmod-wireguard.
  3. Confirm OpenVPN from the binaryOpenVPN's source defines its title string from the package name and version, so the openvpn binary contains OpenVPN 2.x.y, the same text openvpn --version prints. The OpenWrt openvpn Makefile builds three variants, OpenSSL, mbedTLS and wolfSSL, with mbedTLS as the default variant, which matters for the CVE-2026-63650 entry below and for the TLS library's own CVEs.
  4. Confirm strongSwan from the binarycharon's start-up log line is compiled with the version inlined, so strings on the charon binary shows Starting IKE charon daemon (strongSwan 6.x.y. The strongSwan advisory index also notes that swanctl --version or ipsec version prints the installed version on a live device. List the plugin libraries (libstrongswan-*.so) because most strongSwan CVEs live in one plugin.
  5. Confirm libreswan from the binarypluto logs Starting Pluto (Libreswan Version with the version as a separate string, so look for that text and the version number near it, or run ipsec --version on a live unit.
  6. Find WireGuard in the kernelLook for wireguard.ko under the kernel modules directory, or for CONFIG_WIREGUARD=y in the kernel configuration if the image embeds it. The module version is useless for CVE matching: the kernel's WireGuard version header fixes it at 1.0.0, and the module logs WireGuard 1.0.0 loaded on every kernel. Track the kernel version instead. A version such as 1.0.20220627 means the out-of-tree wireguard-linux-compat backport, which exists for kernels 3.10 to 5.5 because WireGuard was merged into Linux 5.6; its newest tag is v1.0.20220627.
  7. Record the modes in useIn swanctl.conf, ipsec.conf or OpenWrt's /etc/config/ipsec, note the IKE version, aggressive, the authentication method (PSK, certificates, EAP type) and the proposals. In OpenVPN configurations, note tls-crypt-v2, secret, data-ciphers, cipher, compress, auth-user-pass-verify and any plugin lines. In libreswan, note listen-tcp and whether any connection uses IKEv1.

The result is one row per device: component, version, build variant, loaded plugins and enabled modes. Our Yocto and Buildroot SBOM guide shows how to capture the same facts at build time, where they are exact rather than inferred.

Which OpenVPN, strongSwan, libreswan and WireGuard CVEs matter?

The ones a remote peer can reach before or during authentication, the ones that break authentication itself, and the ones in plugins your build actually loads. The table covers representative CVEs from each project's own advisories; "Needs" is the condition that makes it reachable.

CVE Component Issue Needs Fixed in
CVE-2026-78133 strongSwan libcharon Use-after-free in IKEv2 rekey collision with multiple key exchanges 6.0.0 or later; authenticated peer 6.1.0
CVE-2026-78135 strongSwan libcharon Usable Child SA before authentication completes 5.9.7 or later 6.1.0
CVE-2026-47895 strongSwan libstrongswan Double-free when cloning certain identities 4.3.3 or later 6.0.7
CVE-2025-62291 strongSwan eap-mschapv2 Heap overflow on the client from a Failure Request eap-mschapv2 plugin, client role 6.0.3
CVE-2023-41913 strongSwan charon-tkm Stack overflow from an unauthenticated IKE_SA_INIT charon-tkm build 5.9.12
CVE-2018-16151, -16152 strongSwan gmp plugin Potential authorization bypass in signature verification gmp plugin 5.7.0
CVE-2026-35058 OpenVPN server ASSERT crash from a crafted packet with a tls-crypt-v2 key tls-crypt-v2 on the server 2.6.20, 2.7.2
CVE-2025-13086 OpenVPN server Inverted HMAC cookie check, source address validation broken 2.6.0 to 2.6.15 2.6.16
CVE-2026-84790 OpenVPN Identity and authentication bypass via embedded NUL in certificate subject 2.3.0 to 2.7.7 2.7.8
CVE-2026-63650 OpenVPN mbedTLS backend --x509-username-field ignored, Common Name used instead 2.7 built with mbedTLS 2.7.6
CVE-2022-0547 OpenVPN server Authentication bypass with several deferred-auth plug-ins More than one deferred-auth plug-in 2.4.12, 2.5.6
CVE-2026-94453 libreswan pluto Use-after-free with IKE-over-TCP, before peer authentication listen-tcp=yes 5.3.3, 5.4.1
CVE-2026-77206 libreswan pluto Pre-authentication NULL dereference in EAP code Any IKEv2 connection, 4.7 to 5.4 5.3.3, 5.4.1
CVE-2024-3652 libreswan pluto IKEv1 responder crash on a bogus AES-GMAC proposal IKEv1 connection without esp= 4.15, 5.0
CVE-2026-99059 Linux WireGuard Race lets a duplicated handshake response reuse session state Kernel WireGuard Kernel stable releases

strongSwan. Most strongSwan CVEs are in a plugin or in libcharon's IKEv2 state machine, so a build that does not load the plugin is not reachable. The 6.1.0 release notes list eleven fixes in PKCS#7, X.509 attribute certificate, EAP-AKA, EAP-PEAP/TTLS and libcharon code, and credit "improvements in AI-assisted security analysis" for finding them. Two are protocol-level: the CVE-2026-78135 advisory explains that libcharon did not reject CREATE_CHILD_SA requests on unestablished IKE SAs, which "can allow an unauthenticated peer to potentially establish a usable Child SA", and the CVE-2026-78133 advisory describes a use-after-free in multi-KE rekey collisions that an authenticated peer could exploit for remote code execution. On the client side, the CVE-2025-62291 advisory shows why EAP plugins matter on gateways that dial out: a 6 to 8 byte EAP-MSCHAPv2 Failure Request causes an integer underflow and, depending on compiler options, a heap overflow.

OpenVPN. The OpenVPN Security Announcements page lists each CVE with a short description; many recent entries are Windows-only (interactive service, ovpn-dco-win, tapctl) and do not apply to Linux firmware. The ones that do concentrate in the server's control channel and authentication. The CVE-2026-35058 announcement explains that a crafted packet carrying a valid tls-crypt-v2 client key can trigger an ASSERT and crash the server, and that "setups that do not use tls-crypt-v2 are not affected". The CVE-2026-84790 announcement covers impersonation through a crafted certificate subject in versions 2.3.0 through 2.7.7, which matters for any gateway that maps certificate names to users or configurations. Older plugin-related flaws still turn up in long-lived images: the CVE-2022-0547 announcement describes access granted "with only partially correct credentials" when more than one plug-in uses deferred authentication.

libreswan. The libreswan CVE table lists mostly denial-of-service bugs in pluto, the IKE daemon, each with a vulnerable range and a signed advisory. Several are reachable before authentication, and a crash-restart loop on a remote-access gateway is an outage for every connected site. The CVE-2026-94453 advisory adds that remote code execution "could be possible", and that only configurations with listen-tcp=yes are affected.

WireGuard. The Linux module has a small CVE history, assigned by the Linux kernel CNA and fixed through stable releases, such as the handshake race fixed by this stable commit for CVE-2026-99059. In device firmware the larger WireGuard risk is the code around it. NVD records command injection in the WireGuard configuration of the TP-Link ER7206 (CVE-2023-46683) and in the WireGuard VPN feature of InHand Networks IR302, IR305, IR315 and IR615 routers (CVE-2026-38704, CVSS 9.8, root privileges). RTOS products that use a separate WireGuard implementation inherit its bugs instead of the kernel's: Zephyr's GHSA-x7q7-fjx9-4vj2 advisory describes peer state changed before the anti-replay check, which let a replayed packet redirect the tunnel. Our embedded TCP/IP stack guide covers the network stacks underneath such implementations.

Because all of these daemons rely on a TLS or crypto library, check that library too: our OpenSSL vulnerabilities and mbedTLS and wolfSSL vulnerabilities guides cover the libraries behind OpenWrt's three OpenVPN variants.

Where does each project publish security advisories?

Each project publishes its own list, and the format tells you how to automate tracking.

Project Where advisories live What each entry gives you
strongSwan strongswan.org/security and the release blog First affected version, fixed version, patch per release, OSV JSON record and an index of all records
OpenVPN 2.x Security Announcements on the community wiki Affected range, fixed release, CVE record and release notes link
libreswan libreswan.org/security Vulnerable and not-vulnerable versions, workaround, patches, PGP-signed text
WireGuard (Linux) Kernel stable releases; CVEs from the Linux kernel CNA Fixing commit per stable branch; no project-level advisory page
WireGuard tools wireguard.com and the wireguard-tools repository Userspace wg tool releases, separate from the kernel module

Support windows matter as much as the list. The OpenVPN supported versions page puts 2.7 in full stable support and 2.6 in old-stable support (security and critical fixes) until August 2027, with end of life in August 2028; 2.5 and older are unsupported. As of 2026-11-13 the newest releases are OpenVPN 2.7.9 (5 November 2026, whose security fixes are all Windows-specific) and 2.6.23, strongSwan 6.1.0, and libreswan 5.4.1.

How should you prioritise VPN CVEs in a device?

Rank by reachability first: does the device run the daemon as a server or a client, is it reachable from the internet, and are the affected plugin and mode enabled? Then look at exploitation data, and use CVSS only to break ties. Data as of 2026-11-12 (CISA KEV catalog version 2026.11.10, FIRST EPSS scores dated 2026-11-12):

CVE In KEV EPSS (percentile) Typical priority
CVE-2026-38704 (InHand WireGuard page) No 0.013 (70th) Critical on affected IR300 and IR600 series units: root via the VPN configuration
CVE-2026-78135 (strongSwan) No 0.004 (37th) High on any internet-facing strongSwan responder from 5.9.7
CVE-2026-78133 (strongSwan) No 0.005 (41st) High on 6.0.x gateways that use multiple key exchanges (for example post-quantum hybrids)
CVE-2026-94453, CVE-2026-77206 (libreswan) No 0.005 (40th), 0.007 (52nd) High on remote-access gateways: pre-authentication crash, 94453 only with listen-tcp=yes
CVE-2026-35058 (OpenVPN) No 0.005 (46th) High on servers using tls-crypt-v2; not affected otherwise
CVE-2026-84790 (OpenVPN) No 0.001 (4th) High where certificate names select users or per-client configuration
CVE-2022-0547 (OpenVPN) No 0.035 (89th) High on servers with more than one deferred-auth plug-in; not affected otherwise
CVE-2023-41913 (strongSwan) No 0.023 (83rd) Critical with charon-tkm, which few embedded builds use; otherwise not affected
CVE-2025-62291 (strongSwan) No 0.010 (63rd) Medium on gateways that dial out with EAP-MSCHAPv2

No CVE in this guide was in CISA's KEV catalog in its 2026.11.10 release, and no KEV entry names strongSwan, libreswan, OpenVPN or WireGuard as the vendor or product. The 40 KEV entries that mention VPN are all commercial products, led by Cisco (12), Fortinet (6) and Citrix (5), which is a reminder that exploitation follows exposure: an open-source daemon on a gateway faces the same internet as those appliances. Use the scores as a sort order inside the reachable set, as our KEV and EPSS prioritisation guide explains, not as a reason to skip a pre-authentication bug.

Feeds lag too. As of 2026-11-13 the OpenWrt packages feed builds strongSwan 6.0.7 according to its strongswan Makefile, and its patch directory carries three non-security patches, so a product built from it carries all eleven issues fixed in 6.1.0. The same feed's libreswan Makefile builds 4.12, which falls inside the vulnerable ranges of nine libreswan advisories, including CVE-2024-3652, CVE-2026-77206 and CVE-2026-94453. Its OpenVPN package is 2.7.8, which already has every non-Windows fix to date.

Which weak VPN defaults should a device maker remove?

The ones that make an attack offline, unauthenticated or invisible. They are configuration rather than code, so a version upgrade does not remove them.

Weak default Why it is weak Replace with
IKEv1 Aggressive Mode with a PSK The PSK hash is sent in the clear and can be attacked offline IKEv2 with certificates, or IKEv2 PSK with a long random per-device key
IKEv1 in general Older, larger code path; several libreswan crashes are IKEv1-only IKEv2 only (strongSwan 6.1.0 defaults to it)
One PSK shared across a product line Extracting it from one unit opens every unit Per-device keys or certificates provisioned at manufacture
OpenVPN static-key mode (secret) No forward secrecy; removed by default in OpenVPN 2.7 TLS mode, with peer-fingerprint if a PKI is too heavy
BF-CBC or other 64-bit block ciphers SWEET32 plaintext recovery AES-GCM or ChaCha20-Poly1305 in data-ciphers
OpenVPN compression Compression oracles (VORACLE) No compression; OpenVPN 2.7 never compresses on send
Shell-built VPN configuration from web input Command injection as root Strict validation and argument arrays instead of shell strings

IKE. strongSwan's strongswan.conf reference names the Aggressive Mode setting i_dont_care_about_security_and_use_aggressive_mode_psk and says it is "strongly discouraged due to security concerns (offline attacks on the openly transmitted hash of the PSK)". On OpenWrt, a single UCI option sets it: the feed's swanctl init script writes that setting when a connection has aggressive enabled, so check /etc/config/ipsec rather than only the generated files. strongSwan 6.1.0 goes further: IKEv1 is disabled by default, must be built with --enable-ikev1, and version defaults to 2.

OpenVPN. The OpenVPN Changes.md for 2.7 says static key mode "is no longer considered good and secure enough" and is removed by default, available only with --allow-deprecated-insecure-static-crypto. The SWEET32 announcement lists BF, DES and RC2 ciphers as ones that "should no longer be used"; OpenVPN 2.5 already dropped BF-CBC from the default cipher set. An image that still ships a 2.4-era configuration with cipher BF-CBC and comp-lzo keeps both weaknesses after an upgrade unless the configuration changes too.

WireGuard. WireGuard has no cipher setting: the protocol page lists one fixed set of primitives (ChaCha20-Poly1305, Curve25519, BLAKE2s, HKDF). Its weak defaults are about keys and the front end: private keys generated once and copied into every image, keys readable by non-root processes, and web pages that pass peer names or endpoints to a shell. Our hard-coded credentials and command injection guides cover both fixes.

How does a device maker patch and harden VPN components?

Upgrade or backport, remove what the product does not use, harden the defaults, then rebuild and verify.

Upgrade or backport. Move to strongSwan 6.1.0, OpenVPN 2.7.9, libreswan 5.4.1 or 5.3.3, and a supported kernel stable release for WireGuard. Where a full upgrade is too large, strongSwan publishes a patch for each advisory and libreswan links patches from each CVE row, so a backport is a defined task. On OpenVPN's 2.6 old-stable branch, check each announcement for a 2.6 fix: the CVE-2026-84790 announcement names only 2.7.8 as fixed, and the newest 2.6 release, 2.6.23, came out before it. Record each backport in the SBOM or a VEX statement, because the version string will still show the old base; our CSAF VEX for device makers guide shows the format.

Remove what is unused. Build strongSwan without plugins the product does not need, especially EAP methods, charon-tkm and PKCS#7 handling; the 6.1.0 release notes also recommend leaving its removed plugins disabled on older releases. Ship only one VPN stack if the product needs only one. Leave libreswan's listen-tcp off unless IKE-over-TCP is required, and avoid multiple OpenVPN deferred-auth plug-ins.

Harden the defaults. Ship IKEv2 only, with per-device certificates or per-device random keys; never ship Aggressive Mode or a shared PSK. For OpenVPN, ship TLS mode with tls-crypt or tls-crypt-v2 on a patched release, AEAD ciphers only and no compression, and verify certificate names against the right field. Our weak cryptography guide covers cipher and key-size choices.

Rebuild, re-scan, release. Regenerate the firmware SBOM, confirm the shipped binaries carry the new versions, and diff against the previous release; our firmware diffing and patch analysis guide covers checking that a backport really landed. For WireGuard, the check is the kernel: our Linux kernel CVEs guide covers tracking stable releases on a vendor kernel. Then publish the affected and fixed firmware versions for each CVE so operators of remote-access gateways can plan the update.

AI-assisted analysis: what the automated scan does

SoftWSP's automated scan unpacks a firmware image, catalogs the software components in the extracted file system, and identifies OpenVPN, strongSwan, libreswan and WireGuard-related packages by name and version. It then matches those versions against CVE records, CISA's KEV catalog and FIRST's EPSS scores. This is deterministic code: the code scores, and AI narrates.

AI's part is the written explanation on top of that matching. It summarises which VPN CVEs matched, which are KEV-listed or have a high EPSS score, and what the version evidence was, and every sentence cites the component, version and record it relies on. An engineer reviews every finding before the report is delivered. The judgements this guide describes as manual stay with that engineer: which strongSwan plugins and OpenVPN options are active, whether IKEv1 or a shared PSK is configured, which kernel a WireGuard module belongs to, and whether a vendor backport already closes a matched CVE.

For where VPN review fits in a full assessment, see the OWASP Firmware Security Testing Methodology guide, or device & firmware security services to have a specific image reviewed.

This guide draws on the strongSwan, OpenVPN and libreswan security advisories and release notes, OpenVPN's Changes.md and supported-versions page, strongSwan's strongswan.conf reference, the WireGuard protocol and compilation pages, the wireguard-linux-compat repository, Linux kernel source and stable commits, the Zephyr security advisories, OpenWrt package Makefiles and init scripts, NVD, CISA's KEV catalog (version 2026.11.10) and FIRST EPSS data dated 2026-11-12, all read directly on 2026-11-13.

Put this guide to work

Frequently asked questions

Which OpenVPN, strongSwan and WireGuard vulnerabilities matter most in router and gateway firmware?

Three groups. First, memory and state bugs in the daemons that an unauthenticated or barely authenticated peer can reach: strongSwan 6.1.0 (2026-09-07) fixed eleven at once, including a rekey-collision use-after-free (CVE-2026-78133) and a Child SA created before authentication (CVE-2026-78135), and OpenVPN 2.6.20 and 2.7.2 fixed a tls-crypt-v2 server crash (CVE-2026-35058). Second, authentication flaws in plugins and certificate handling, such as OpenVPN's deferred-auth plugin bypass (CVE-2022-0547) and its embedded-NUL certificate subject bypass (CVE-2026-84790). Third, weak shipped defaults, above all IKEv1 Aggressive Mode with a pre-shared key and OpenVPN static-key mode, plus command injection in the vendor web pages that configure the VPN.

How do I find which VPN component and version a firmware image ships?

Unpack the root file system and read the package database first: the opkg status file on older OpenWrt-based images, the apk database on OpenWrt 25.12 builds, or the dpkg status file on Debian-based images. Then confirm from the binaries. OpenVPN embeds a title string that starts with "OpenVPN" and the version, charon embeds "Starting IKE charon daemon (strongSwan" followed by the version, and libreswan's pluto logs "Starting Pluto (Libreswan Version". For WireGuard, look for the wireguard.ko kernel module or a built-in CONFIG_WIREGUARD. The in-tree module always reports version 1.0.0, so the kernel version is what you track.

Is WireGuard safer than OpenVPN or IPsec in an embedded device?

Its protocol has fewer settings to get wrong: WireGuard uses one fixed set of primitives (ChaCha20-Poly1305, Curve25519, BLAKE2s) with no cipher option, and the Linux implementation ships with the kernel. In device firmware, though, the WireGuard CVEs on record are mostly elsewhere: command injection in vendor pages that configure WireGuard (for example CVE-2026-38704 in InHand IR300 and IR600 series routers, CVSS 9.8), separate implementations such as Zephyr's WireGuard stack, and kernel race fixes such as CVE-2026-99059. Treat the kernel version, the web front end and the key handling as the attack surface.

Where do OpenVPN, strongSwan, libreswan and WireGuard publish security advisories?

strongSwan lists every CVE with affected and fixed versions on strongswan.org/security, plus OSV records. OpenVPN lists announcements on its community wiki's Security Announcements page. libreswan publishes a CVE table with signed text advisories on libreswan.org/security. WireGuard on Linux has no separate advisory page: fixes land in the kernel and the Linux kernel CNA assigns the CVEs, so track it through kernel stable releases.

Does SoftWSP check the VPN components in my firmware?

SoftWSP's automated scan identifies OpenVPN, strongSwan, libreswan and WireGuard-related packages, with their versions, from the unpacked firmware file system, and matches those versions against CVE records, CISA's KEV catalog and FIRST EPSS scores. AI then writes a plain-language summary that cites the component, version and record behind every finding, and an engineer reviews it. Judging which plugins and protocol modes are enabled, and whether a vendor backport already closes a matched CVE, is part of that engineer review rather than an automatic verdict.

Sources

  1. strongSwan: Security Advisories (all CVEs with affected and fixed versions)
  2. strongSwan 6.1.0 released (eleven vulnerabilities fixed, IKEv1 disabled by default), 2026-09-07
  3. strongSwan advisory CVE-2026-78133: use-after-free during multi-KE rekey collision
  4. strongSwan advisory CVE-2026-78135: Child SA creation before authentication
  5. strongSwan advisory CVE-2025-62291: eap-mschapv2 Failure Request buffer overflow
  6. strongSwan advisory CVE-2023-41913: charon-tkm DH public value buffer overflow
  7. strongSwan documentation: strongswan.conf reference (aggressive mode PSK setting)
  8. OpenVPN community wiki: Security Announcements
  9. OpenVPN announcement CVE-2026-35058: server ASSERT with tls-crypt-v2
  10. OpenVPN announcement CVE-2026-84790: authentication bypass via embedded NUL in certificate subject
  11. OpenVPN announcement CVE-2026-63650: mbedTLS backend ignores x509-username-field
  12. OpenVPN announcement CVE-2025-13086: HMAC cookie verification check
  13. OpenVPN announcement CVE-2022-0547: authentication bypass with multiple deferred auth plug-ins
  14. OpenVPN and SWEET32 (64-bit block ciphers such as BF-CBC)
  15. OpenVPN: VORACLE attack and OpenVPN (compression)
  16. OpenVPN community wiki: Supported versions
  17. OpenVPN community wiki: Release history
  18. OpenVPN Changes.md at v2.7.9 (static key mode removal, default data ciphers)
  19. libreswan: Security information and list of libreswan CVEs
  20. libreswan advisory CVE-2026-94453: IKEv2 use-after-free with IKE-over-TCP
  21. libreswan advisory CVE-2026-77206: IKEv2 pre-authentication NULL pointer dereference in EAP code
  22. WireGuard: Protocol and cryptography
  23. WireGuard: Compilation from source code (kernel requirements)
  24. wireguard-linux-compat: WireGuard kernel module backport for Linux 3.10 to 5.5
  25. Linux kernel source: drivers/net/wireguard/version.h
  26. Linux stable commit: wireguard: noise: reject response consumption after intermediate initiation (CVE-2026-99059)
  27. Zephyr security advisory GHSA-x7q7-fjx9-4vj2: WireGuard peer state mutated before anti-replay check
  28. OpenWrt packages feed: strongswan Makefile
  29. OpenWrt packages feed: strongswan swanctl init script (aggressive option)
  30. OpenWrt packages feed: openvpn Makefile (openssl, mbedtls and wolfssl variants)
  31. OpenWrt packages feed: libreswan Makefile
  32. OpenWrt: wireguard-tools package Makefile
  33. NIST NVD: CVE-2026-38704 (InHand Networks WireGuard VPN command injection)
  34. NIST NVD: CVE-2023-46683 (TP-Link ER7206 WireGuard configuration command injection)
  35. CISA: Known Exploited Vulnerabilities (KEV) Catalog
  36. FIRST: Exploit Prediction Scoring System (EPSS)
Was this guide helpful?

In this cluster

OpenVPN, strongSwan and WireGuard vulnerabilities in embedded firmware: identify, prioritise and fix