OpenVPN 2.7.6 -- Released 5 August 2026
The OpenVPN community project team is proud to release OpenVPN 2.7.6. This is a bugfix release fixing several security issues.
For details see Changes.rst
Security fixes:
openvpnserv (windows): better scrutinize command line passed in from the control socket to openvpn. This would lead to circumventing admin restrictions on allowed openvpn config directories (but never to "read files the user has no permissions for") (CVE-2026-63649)
Bug found by 章鱼哥 (www.aipyaipy.com)
dco: make key state desync recoverable
This was reported as a "with suitable timing, a key-update de-sync between OpenVPN and the kernel could trigger an ASSERT()", and was initially handled as security report. It turned out to be not exploitable, but the state machine was not very robust and so the opportunity was used to improve the code.
Bug found by 章鱼哥 (www.aipyaipy.com)
make
--x509-username-fieldwork with mbedTLS.In very particular setups, together with a CA creating matching certificates, this could lead to unintentionally permitting a certificate that should not have. This is why this was considered a (low-prio) security bug and a CVE ID was assigned (CVE-2026-63650)
Bug found by 章鱼哥 (www.aipyaipy.com)
User-visible Changes:
if
--devis not specified, default to--dev tun- so for the tun case, this option can now be left out of the openvpn config.--pingand--keepalivesettings are now limited to 24 hours maximum - the primary reason for that is to avoid lots of extra code in the DCO kernel to handle arbitrarily large values without overflowing 32 bit integers. 24h is considered much higher than any reasonable use.The
TCP_NODELAYsocket flag is now "always on". The--tcp-nodelayoption is kept, because setting it on a p2mp server also enables pushing ofsocket-flags TCP_NODELAYto clients, which might not have this code change yet.Remove
--providersfrom--helpoutput on mbedTLS builds.
Bugfixes:
refuse incoming HARD RESET packets with a sequence ID != 0 (this is basically making an OpenVPN server ignore and log a "should never happen" client-side misbehaviour, which could lead to TLS handshake establishment failures in p2p TLS setups)
correctly calculate packet id size if epoch packet format is in use - this was off by 4, for connections openvpn 2.7+ to openvpn 2.7+, exceeding "mssfix mtu" headroom by those 4 bytes (Github: OpenVPN/openvpn#1074)
correct minimum packet length check for 802.1q tagged packets (Github: OpenVPN/openvpn#1044).
This was also reported (twice) as a security bug, as technically OpenVPN with
--client-natwould read and write up to 4 bytes "after the end of the packet" - but due to the OpenVPN packet buffer layouts, which are always full-frame-sized this is fully safe and has no adverse consequences.
Windows MSI changes since 2.7.5-I001:
- Update included dco-win driver to v2.8.4
- fix control channel stall (Github: ovpn-dco-win/issues/137)
| Windows 64-bit MSI installer | GnuPG Signature | OpenVPN-2.7.6-I001-amd64.msi |
| Windows ARM64 MSI installer | GnuPG Signature | OpenVPN-2.7.6-I001-arm64.msi |
| Windows 32-bit MSI installer | GnuPG Signature | OpenVPN-2.7.6-I001-x86.msi |
| Source archive file | GnuPG Signature | openvpn-2.7.6.tar.gz |
For Community-maintained packages for Linux distributions see OpenVPN Software Repositories.
OpenVPN 2.6.21 -- Released 1 July 2026
The OpenVPN community project team is proud to release OpenVPN 2.6.21. This is a bugfix release fixing several security issues.
For details see Changes.rst
Security fixes:
Fix use-after-free bug in ack_write_buf(), triggerable by a well-timed sequence of control channel + authentication packets (CVE-2026-12996)
Bug found by multiple researchers:
- 章鱼哥 (www.aipyaipy.com)
- Haiyang Huang
- Haruki Oyama (Waseda University)
Fix use-after-free bug in tls_wrap_reneg(), triggerable by suitable sequence of dynamic tls-crypt control-channel packets (CVE-2026-13117)
Bug found by multiple researchers:
- Trace37 Labs (github.com/trace37labs)
- Haiyang Huang
Fix server crash on reception of suitably malformed auth-token, if
--auth-gen-token external-authis active (CVE-2026-13122)Bug found by Haiyang Huang.
Fix memory-leak in tls-crypt-v2 client key handling that could lead to out-of-memory situations and subsequent server crashes (CVE-2026-12932)
Bug found by Valton Tahiri.
Fix possible 1-byte buffer overrun on NTLMv2 proxy responses. (CVE-2026-11771)
Bug found by Tristan Madani (@TristanInSec).
Fix another memory leak on reception of suitable tls-crypt-v2 packets that could lead to an out of memory situation and server crash (CVE-2026-13698)
Bug found by Max Fillinger. Overlaps with a report from Valton Tahiri that we believe to be fixed by this bugfix as well.
Bugfixes:
Windows: fix plugin trusted-dir check prefix bypass (this fixes a bug in the path checking logic we do on Windows for "is loading a plugin from this path allowed?", but since we could not find a way to exploit this unless starting with admin privs or a social engineering attack, not classified as a security fix)
options: fix use-after-free of DNS options on client connect (using suitable
--dnsor--dhcp-option DNSoptions in a server config - not pushed, but applying to the server itself - triggers a double free() and use-after-free condition, possibly crashing the server) (Github: OpenVPN/openvpn#1060)Null-terminate tls-crypt client keys when testing - non-exploitable strlen() on a buffer that is not null-terminated
Ensure pushed tun-mtu is no lower than TUN_MTU_MIN - this fixes a bug where a server can push a suitable combination of options and make the client ASSERT().
(Reported as security issue by Haiyang Huang, but it was decided that the server always has means to make the client "not function properly", and it can not be exploited beyond that)
Windows MSI changes since 2.6.20-I001:
- Built against OpenSSL 3.6.3
| Windows 64-bit MSI installer | GnuPG Signature | OpenVPN-2.6.21-I001-amd64.msi |
| Windows ARM64 MSI installer | GnuPG Signature | OpenVPN-2.6.21-I001-arm64.msi |
| Windows 32-bit MSI installer | GnuPG Signature | OpenVPN-2.6.21-I001-x86.msi |
| Source archive file | GnuPG Signature | openvpn-2.6.21.tar.gz |
For Community-maintained packages for Linux distributions see OpenVPN Software Repositories.
