OpenVPN

Security & Privacy

A robust and flexible VPN daemon.

Latest v2.7.7 · by OpenVPNWritten in CWebsiteOpenVPN/openvpnRSS

Branches

2.7
v2.7.7
2.6
v2.6.22

Release activity

Release activity — 11 releases across 8 days since Feb 11, 2026. Each cell is one day; darker means more releases that day. Nothing is recorded before Feb 11, 2026. Older weeks are hidden at this screen width.
JunJulAugSep
SundayNo releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 2026No releases on Aug 23, 2026No releases on Aug 30, 2026No releases on Sep 6, 2026
MondayNo releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026No releases on Aug 17, 2026No releases on Aug 24, 2026No releases on Aug 31, 2026No releases on Sep 7, 2026
TuesdayNo releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026No releases on Aug 18, 2026No releases on Aug 25, 2026No releases on Sep 1, 2026No releases on Sep 8, 2026
WednesdayNo releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026No releases on Aug 12, 2026No releases on Aug 19, 2026No releases on Aug 26, 2026No releases on Sep 2, 2026
ThursdayNo releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 20262 releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 20262 releases on Aug 6, 2026No releases on Aug 13, 2026No releases on Aug 20, 2026No releases on Aug 27, 20261 release on Sep 3, 2026
FridayNo releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026No releases on Aug 14, 2026No releases on Aug 21, 2026No releases on Aug 28, 2026No releases on Sep 4, 2026
SaturdayNo releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026No releases on Aug 22, 2026No releases on Aug 29, 2026No releases on Sep 5, 2026

11 releases since Feb 11, 2026, busiest day 2

Changelog

Filter releases by branch
11 of 11 releases

v2.7.7

Latest
Changed 1
  • Reduce number of future keys from 16 to 4 when using EPOCH data channel format
Fixed 7
  • Work around a pubkey-handling bug in mbedTLS 4.1.0 and 4.2.0
  • Prevent stale-routes-check from deleting permanent routes installed by --iroute and --ifconfig-push
  • Do not queue control ciphertext while a packet is still queued to fix TCP p2p handshake problems
  • Reenable xmit_hold when using p2p tcp-server and tls-server
  • Do not adjust UDP checksum if zero per RFC768
  • Avoid resetting the HMAC key on every packet with OpenSSL
  • Fix openvpnserv log lines format string on Windows to convert interface names with international characters from UTF8 to UCS16
Security 10
  • Avoid unbounded reliable TLS timeout in reliability layer and ignore acks for packets that cannot be outstanding
  • Fix CreateProcess() command line quoting for characters special to cmd.exe on Windows to prevent misbehavior with validation scripts and rogue CAs
  • Fix tapctl on Windows to always call netsh.exe with full path
  • Use proper DACL with system objects on Windows including service exit event and netsh.exe guard semaphore to prevent local DoS
  • Fix openvpnserv on Windows to pass correct NRPT domains size to prevent buffer overread with IDN domains using UTF8 encoding
  • Disallow '/' in config paths on Windows to prevent circumventing path validation

From OpenVPN

Security fixes:
  • reliability layer: avoid unbounded reliable TLS timeout, and ignore acks for packets that cannot be outstanding (CVE-2026-84732)

    Both reliability layer bugs found by Mark Bregman (Fox-IT)

  • windows: fix CreateProcess() command line quoting for characters that are special to cmd.exe, where a combination of validation script plus rogue CA could lead to misbehavior (CVE-2026-84256)

    Bug found by Clouditera Security

  • windows: fix tapctl to always call netsh.exe with full path (as we do elsewhere) (CVE-2026-84226)

    Bug found by BreachX Zero Day Labs (using Typhon AI Mil v2)

  • windows: don't use NULL DACL with system objects, namely the --service exit event and the netsh.exe guard semaphore.

    The old approach was prone to a local DoS where one user could interfere with other users' openvpn processes by blocking the netsh semaphore or sending events. This only affects setups not using the iservice, or using the automatic service to start/stop openvpn (CVE-2026-82312)

    Bug found by DEBRAJ BASAK

  • openvpnserv (windows): pass correct NRPT domains size - when IDN domains with UTF8 encoding were involved, a buffer overread could be achieved (CVE-2026-78221)

    Bug found by BreachX Zero Day Labs (using Typhon AI Mil v2)

  • openvpnserv (windows): don't allow '/' in config paths.

    The APIs windows uses for path validation do not handle '/' as path separator, while the file open APIs do, so this could be used to circumvent our config path validation, leading to openvpn.exe starting a user-controlled config file even if administratively not allowed (CVE-2026-78043)

    Bug found by BreachX Zero Day Labs (using Typhon AI Mil v2)

  • dhcp (windows): fix off-by-one in write_dhcp_search_str() temp buffer guard - suitable DHCP options could lead to a single-byte overflow of a temp buffer (CVE-2026-81738)

    Bug found by Andre Kropp (Nexory) and ChinhNguyen

  • linux netlink: validate netlink replies against the request

    Suggested by Joshua Rogers as a security improvement

  • openvpnserv (windows): fix off-by-one on input validation (discovered while fixing CVE-2026-78221)

  • openvpnserv (windows): harden CheckConfigPath() a bit more (another improvement while working on CVE-2026-78043)

User-visible Changes:

  • when using EPOCH data channel format, reduce the number of future keys from 16 to 4 - the previous calculation was wrong, and 4 spare keys are sufficient for 100+ Gbit/s links. This means less log spam in userland and fewer resources used in in-kernel implementations.
Bugfixes:
  • work around a pubkey-handling bug in mbedTLS 4.1.0 and 4.2.0 (supposedly fixed in 4.3.0)

  • multi: don't let stale-routes-check delete permanent routes - --stale-routes-check did not only delete dynamic cached routes, but also routes installed by --iroute and --ifconfig-push. Fixed by introducing route flags and restraining the check on them (Github: OpenVPN/openvpn#1063)

  • ssl: do not queue control ciphertext while a packet is still queued (fixes problems in TCP p2p handshake when both sides try to handshake at the same time) (Github: OpenVPN/openvpn#1089)

  • reenable xmit_hold when using p2p tcp-server and tls-server - in TCP server mode the server is not expected to initiate the TLS handshake. This was introduced by the multisocket code checking the wrong variable for socket protocol (Github: OpenVPN/openvpn#1089)

  • clinat: do not adjust UDP checksum if zero (as per RFC768) (Github: OpenVPN/openvpn#1037)

  • openssl: avoid resetting the HMAC key on every packet (Github: OpenVPN/openvpn#1088)

  • openvpnserv (windows): fix log lines format string - interface names with international characters printed in some error messages need to be converted from UTF8 to UCS16 first.

  • fix format string specifier for size_t (%zu)

  • fix test_misc compile issues with -Werror

Full Changelog: https://github.com/OpenVPN/openvpn/compare/v2.7.6...v2.7.7

View originalPermalink
How v2.7.7 went

v2.6.22

Fixed 2
  • Refuse incoming HARD RESET packets with a sequence ID not equal to 0 to prevent TLS handshake establishment failures in peer-to-peer TLS setups
  • Correct minimum packet length check for 802.1q tagged packets
Security 2
  • Improve command line validation in openvpnserv on Windows to prevent circumventing admin restrictions on allowed OpenVPN config directories
  • Make DCO key state desynchronization recoverable and improve the state machine robustness

From OpenVPN

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)

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)

  • 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-nat would 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.

Full Changelog: https://github.com/OpenVPN/openvpn/compare/v2.6.21...v2.6.22

View originalPermalink
How v2.6.22 went

v2.7.6

Changed 4
  • Default to --dev tun if --dev is not specified, allowing this option to be omitted from OpenVPN config for the tun case
  • Limit --ping and --keepalive settings to a maximum of 24 hours to avoid overflow issues with 32 bit integers in the DCO kernel
  • Enable TCP_NODELAY socket flag to always be on, while keeping the --tcp-nodelay option for p2mp server configurations that push socket flags to clients
  • Remove --providers from --help output on mbedTLS builds
Fixed 3
  • Refuse incoming HARD RESET packets with a sequence ID other than 0 to prevent TLS handshake establishment failures in p2p TLS setups
  • Correctly calculate packet id size when epoch packet format is in use, fixing a 4-byte offset error that exceeded mssfix mtu headroom for OpenVPN 2.7+ to 2.7+ connections
  • Correct minimum packet length check for 802.1q tagged packets
Security 3
  • Better scrutinize command line passed from the control socket to openvpn on Windows to prevent circumventing admin restrictions on allowed OpenVPN config directories
  • Make key state desync recoverable in DCO to improve the robustness of the state machine
  • Make --x509-username-field work correctly with mbedTLS to prevent unintentionally permitting certificates that should be rejected

From OpenVPN

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-field work 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 --dev is not specified, default to --dev tun - so for the tun case, this option can now be left out of the openvpn config.

  • --ping and --keepalive settings 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_NODELAY socket flag is now "always on". The --tcp-nodelay option is kept, because setting it on a p2mp server also enables pushing of socket-flags TCP_NODELAY to clients, which might not have this code change yet.

  • Remove --providers from --help output 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-nat would 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.

Full Changelog: https://github.com/OpenVPN/openvpn/compare/v2.7.5...v2.7.6

View originalPermalink
How v2.7.6 went

v2.7.5

Added 1
  • Add documentation for --preresolve
Changed 2
  • Improve documentation for --float
  • Improve documentation around DNS config
Fixed 10
  • Fix Windows plugin trusted-dir check prefix bypass in path checking logic
  • Fix buffer overread in Windows openvpnserv ConvertItfDnsDomains
  • Fix use-after-free of DNS options on client connect with suitable --dns or --dhcp-option DNS options in server config
  • Fix memory leak in dns_server_addr_parse when too many server addresses are configured
  • Improve multi-socket event handling to prevent inefficient processing with multiple open UDP sockets with concurrent traffic
  • Null-terminate tls-crypt client keys when testing
Security 7
  • Fix DNS SearchList state pollution on Windows openvpnserv that could corrupt pre-OpenVPN DNS config with specific combinations of --dns config entries plus local DNS config (CVE-2026-13379)
  • Fix use-after-free bug in ack_write_buf() triggerable by a well-timed sequence of control channel and authentication packets (CVE-2026-12996)
  • Fix use-after-free bug in tls_wrap_reneg() triggerable by suitable sequence of dynamic tls-crypt control-channel packets (CVE-2026-13117)
  • Fix server crash on reception of suitably malformed auth-token when --auth-gen-token external-auth is active (CVE-2026-13122)
  • Fix memory leak in tls-crypt-v2 client key handling that could lead to out-of-memory situations and server crashes (CVE-2026-12932)
  • Fix possible 1-byte buffer overrun on NTLMv2 proxy responses (CVE-2026-11771)
  • Fix memory leak on reception of suitable tls-crypt-v2 packets that could lead to out-of-memory situation and server crash (CVE-2026-13698)

From OpenVPN

Security fixes:
  • openvpnserv (windows): fix DNS SearchList state pollution on (dis)connect. specific combinations of --dns config entries plus local DNS config could lead to corruption of pre-openvpn DNS config (CVE-2026-13379)

    Bug found by 章鱼哥 (www.aipyaipy.com).

  • 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:

  • 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-auth is 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)

  • Windows: openvpnserv: rework ConvertItfDnsDomains and tests (this fixes a buffer overread that is not exploitable and as such not classified as security fix)

  • options: fix use-after-free of DNS options on client connect (using suitable --dns or --dhcp-option DNS options 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)

  • dns: Fix memory leak in dns_server_addr_parse, if too many server addresses are configured (Github: OpenVPN/openvpn#1055)

  • improve multi-socket event handling further - multiple open UDP sockets with concurrent traffic could lead to inefficient processing, and the old code was also very hard to follow.

    (This was initially triggered by a report from Joshua Rogers using ZeroPath, but turned out to be "just bad code" not a security vulnerability)

  • Null-terminate tls-crypt client keys when testing - non-exploitable strlen() on a buffer that is not null-terminated

  • mudp: send HMAC reset reply synchronously this fixes a bug where multiple incoming tls-crypt-v2 RESET packets on different sockets could end up overwriting each other's control structures, leading to initial handshake packets (HMAC reset reply) being sent to the wrong client IP, or on a non-suitable socket ("v4 packet on a v6 socket"). Since the overall flow here is stateless by nature, do not artificially create state by creating elaborate queues, just send-or-drop.

  • fix port-share and multi-socket interaction - port-share needs TCP listeners, but the check was wrong. So "as long as any of the listening sockets is TCP, port-share can be used" (Github: OpenVPN/openvpn#1027)

  • 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: socket: assert buffer length before reading prepended sockaddr family - a misbehaviour in the windows DCO driver could trigger an overread in the userland client. No such bug exists, which this was not treated as a security vulnerability

Documentation improvements:

For details see Changes.rst

Windows Client: Community MSI installer for Windows client can be found at Community Downloads.

Linux Packages: Instructions for installing community-maintained Linux packages can be found in the Community Wiki.

Full Changelog: https://github.com/OpenVPN/openvpn/compare/v2.7.4...v2.7.5

View originalPermalink
How v2.7.5 went

v2.6.21

Fixed 4
  • Windows: fix plugin trusted-dir check prefix bypass
  • Fix use-after-free of DNS options on client connect using suitable --dns or --dhcp-option DNS options in a server config
  • Null-terminate tls-crypt client keys when testing
  • Ensure pushed tun-mtu is no lower than TUN_MTU_MIN to prevent client ASSERT()
Security 6
  • Fix use-after-free bug in ack_write_buf() triggerable by a well-timed sequence of control channel and authentication packets
  • Fix use-after-free bug in tls_wrap_reneg() triggerable by suitable sequence of dynamic tls-crypt control-channel packets
  • Fix server crash on reception of suitably malformed auth-token when --auth-gen-token external-auth is active
  • Fix memory leak in tls-crypt-v2 client key handling that could lead to out-of-memory situations and subsequent server crashes
  • Fix possible 1-byte buffer overrun on NTLMv2 proxy responses
  • Fix memory leak on reception of suitable tls-crypt-v2 packets that could lead to out of memory situation and server crash

From OpenVPN

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:

  • 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-auth is 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 --dns or --dhcp-option DNS options 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)

For details see Changes.rst

Windows Client: Community MSI installer for Windows client can be found at Community Downloads.

Linux Packages: Instructions for installing community-maintained Linux packages can be found in the Community Wiki.

Full Changelog: https://github.com/OpenVPN/openvpn/compare/v2.6.20...v2.6.21

View originalPermalink
How v2.6.21 went

v2.7.4

Fixed 4
  • Fix erroneous enabling of DnsSecValidationRequired on Windows with win-dco when using `--dns server` style configs
  • Correct comments in `--dns-up-down` platform scripts relating to `dns_server_..._dnssec` values
  • Fix release-only build of pkcs11-helper vcpkg port to not attempt installing files from debug build
  • mbedTLS builds now provide a proper error message if a `tls-group` statement with no valid groups is encountered
Removed 1
  • Remove `--enable-strict` and `--enable-strict-options` configure flags

From OpenVPN

Bugfixes:
  • using --dns server ... style configs on Windows with win-dco would lead to erroneously enabling "DnsSecValidationRequired : True", possibly breaking VPN DNS resolution. Pushing --dns server ... dnssec no can be used as a workaround until clients can be updated. (Github: openvpn#1024)
  • correct comments in the --dns-up-down platform scripts relating to dns_server_..._dnssec values.
  • fix release-only build of pkcs11-helper vcpkg port, do not try to install files from debug build.
  • mbedTLS builds will now provide a proper error message if a tls-group statement with no valid groups is encountered (used to run into SSL handshake failure later on).
  • --enable-strict and --enable-strict-options configure flags have been removed (because they did not actually do anything anymore)

For details see Changes.rst

Windows Client: Community MSI installer for Windows client can be found at Community Downloads.

Linux Packages: Instructions for installing community-maintained Linux packages can be found in the Community Wiki.

Full Changelog: https://github.com/OpenVPN/openvpn/compare/v2.7.3...v2.7.4

View originalPermalink
How v2.7.4 went

v2.7.3

Fixed 1
  • Fixed issue where setups using --auth-user-pass file or inline auth-user-pass would no longer use configured passwords and instead prompt on the management interface when combined with --management-query-passwords

From OpenVPN

Bugfixes:
  • in combination with --management-query-passwords, setups using --auth-user-pass file or inline auth-user-pass would no longer use the configured passwords and prompt on the management interface instead (OpenVPN GUI would then provide an empty user/password prompt) (Github: openpvn#1021).

For details see Changes.rst

Windows Client: Community MSI installer for Windows client can be found at Community Downloads.

Linux Packages: Instructions for installing community-maintained Linux packages can be found in the Community Wiki.

Full Changelog: https://github.com/OpenVPN/openvpn/compare/v2.7.2...v2.7.3

View originalPermalink
How v2.7.3 went

v2.7.2

Added 2
  • Management interface permits input of very long passwords in base64-encoded multiline format
  • Signal support to management clients via management version 6
Changed 2
  • Improve error messages on --verify-x509-name failures
  • Improve error logging when overlong username or passwords cannot be written to TLS buffer
Fixed 3
  • Fix prompting for password from management interface when using a config file with inlined username and no password
  • Windows: fix DNSSEC flag handling due to bad comparison being always false
  • Windows: fix deinstallation progress bar on adapter deletion
Security 2
  • Fix race condition in TLS handshake that could lead to leaking of packet data from a previous handshake under specific circumstances (CVE-2026-40215)
  • Fix server ASSERT() on receiving a suitably malformed packet with a valid tls-crypt-v2 key (CVE-2026-35058)

From OpenVPN

Security fixes:
  • CVE-2026-40215: fix race condition in TLS handshake that could lead to leaking of packet data from a previous handshake under specific circumstances
  • CVE-2026-35058: fix server ASSERT() on receiving a suitably malformed packet with a valid tls-crypt-v2 key
New features:
  • management interface: permit input of very long passwords in base64-encoded multiline format. Signal support to management clients via "management version 6".
User-visible Changes:
  • improve error messages on --verify-x509-name failures
  • improve error logging when overlong username or passwords can not be written to TLS buffer
Bugfixes:
  • when using a config file with inlined username and no password, fix prompting for the password from management interface.
  • Windows: fix DNSSEC flag handling - this got never applied due to a bad comparison being always false.
  • Windows: fix deinstallation progress bar on adapter deletion.

For details see Changes.rst

Windows Client: Community MSI installer for Windows client can be found at Community Downloads.

Linux Packages: Instructions for installing community-maintained Linux packages can be found in the Community Wiki.

Full Changelog: https://github.com/OpenVPN/openvpn/compare/v2.7.1...v2.7.2

View originalPermalink
How v2.7.2 went

v2.6.20

Fixed 6
  • Stop periodic bytecount output on management client disconnection
  • Make DCO work on FreeBSD systems with no IPv4 support
  • Fix compilation with --enable-async-push on FreeBSD 15
  • Make DCO work on big endian architectures (MIPS, PowerPC)
  • Fix deinstallation progress bar on adapter deletion on Windows
  • Fix problem with DCO kernel notifications getting lost, leading to overcounting of number of connected clients and general confusion between kernel and userland regarding peer status on Linux
Security 2
  • Fix race condition in TLS handshake that could lead to leaking of packet data from a previous handshake under specific circumstances
  • Fix server ASSERT() on receiving a suitably malformed packet with a valid tls-crypt-v2 key

From OpenVPN

Security fixes:
  • CVE-2026-40215: fix race condition in TLS handshake that could lead to leaking of packet data from a previous handshake under specific circumstances
  • CVE-2026-35058: fix server ASSERT() on receiving a suitably malformed packet with a valid tls-crypt-v2 key
Bugfixes:
  • management: stop periodic bytecount output on mgmt client disconnection
  • FreeBSD: make DCO work on systems with no IPv4 support
  • FreeBSD: fix compilation with --enable-async-push on FreeBSD 15
  • Linux: make DCO work on big endian architectures (MIPS, PowerPC)
  • Windows: fix deinstallation progress bar on adapter deletion.
  • Linux: fix problem with DCO kernel notifications getting lost, leading to overcounting of number of connected clients and general confusion between kernel and userland regarding peer status (Github #900, #918, #931, #919, #945) - this is a backport of the fixes in 2.7 plus the infrastructural changes around DCO needed to support it.

For details see Changes.rst

Windows Client: Community MSI installer for Windows client can be found at Community Downloads.

Linux Packages: Instructions for installing community-maintained Linux packages can be found in the Community Wiki.

Full Changelog: https://github.com/OpenVPN/openvpn/compare/v2.6.19...v2.6.20

View originalPermalink
How v2.6.20 went

v2.7.1

Added 1
  • Add a new `username-only` flag argument to `--auth-user-pass` which makes OpenVPN only query for username and send a dummy password to the server
Changed 4
  • Increase default sizing of internal hash maps to `4 * --max-clients`
  • When compiled with the AWS-LC SSL library, using `--tls-cert-profile` will now print a run-time warning as the library does not support it
  • Systemd unit files: change LimitNPROC to TasksMax and increase limit
  • port-share: log incoming connections at `verb 3`, not on `error` level anymore
Fixed 9
  • Fix usage of `--lport` inside a `<connection>` block which got broken with the multi-socket patchset
  • Do not try to run auto-pam unit test when cross-compiling
  • Do not break private-key passphrases of length >= 64
  • Fix obscure ASSERT() crash on TCP connects with TAP and no ip config
  • Make DCO work on FreeBSD systems that have no IPv4 support in kernel
  • Make DCO work on Linux on big endian systems (namely, MIPS and PowerPC)

From OpenVPN

New features:
  • Add a new username-only flag argument to --auth-user-pass which will now make OpenVPN only query for username and send a dummy password to the server. This is only useful if auth schemes are used on the server side that will do some sort of external challenge base on username, and not password authentication. See discussion in GH OpenVPN/openvpn#501 (starting Jan 30, 2024).
  • Increase default sizing of internal hash maps to 4 * --max-clients. The default used to be 256 with a --max-clients default of 1024 - this is bad for performance, while the memory savings are minimal. On a very memory constrained system, reduce --max-clients.
User-visible Changes:
  • When compiled with the AWS-LC SSL library, using --tls-cert-profile will now print a run-time warning - the library does not support it, so it would silently do nothing.
  • Systemd unit files: change LimitNPROC to TasksMax and increase limit (GH: OpenVPN/openvpn#929)
  • Documentation improvements.
  • port-share: log incoming connections at verb 3, not on error level anymore (GH: OpenVPN/openvpn#976).
Bugfixes:
  • Fix usage of --lport inside a <connection> block - this got broken with the multi-socket patchset (GH: OpenVPN/openvpn#995)
  • Do not try to run auto-pam unit test when cross-compiling.
  • Do not break private-key passphrases of length >= 64 (GH: OpenVPN/openvpn#993)
  • Fix obscure ASSERT() crash on TCP connects with TAP and no ip config.
  • Make DCO work on FreeBSD systems that have no IPv4 support in kernel (FreeBSD PR 286263)
  • Make DCO work on Linux on big endian systems (namely, MIPS and PowerPC) (GH: OpenVPN/ovpn-dco#96)
  • Fixup responses to management interface version command (for >= 4)
  • Make --enable-async-push work on FreeBSD 15 (which has native inotify support, and consequently no libinotify.pc anymore)
  • Adjust some code parts to new "const" handling on string function returns (ISO C23, as implemented by glibc 2.43 and newer).

For details see Changes.rst

Windows Client: Community MSI installer for Windows client can be found at Community Downloads.

Linux Packages: Instructions for installing community-maintained Linux packages can be found in the Community Wiki.

Full Changelog: https://github.com/OpenVPN/openvpn/compare/v2.7.0...v2.7.1

View originalPermalink
How v2.7.1 went

v2.7.0

Added 11
  • Multi-socket support for servers to handle multiple addresses/ports/protocols within one server
  • Client implementations for DNS options on Linux/BSD/macOS included with the default install
  • New client implementation for Windows adding support for split DNS and DNSSEC
  • Support for server mode in win-dco driver
  • Support for new upstream DCO Linux kernel module
  • Client-side support for new PUSH_UPDATE control-channel message allowing servers to send updates to routing and DNS config without triggering a reconnect
Changed 6
  • The block-local flag is now enforced with WFP filters
  • Windows network adapters are now generated on demand
  • Windows automatic service now runs as an unpriviledged user
  • Enforcement of AES-GCM usage limit in data channel
  • Epoch data keys and packet format in data channel
  • Recursive Routing check is now more granular and will only drop packets-in-tunnel if destination IP, protocol and port matches with those needed to reach the VPN server
Removed 2
  • Support for the wintun driver has been removed
  • win-dco is now the default driver and tap-windows6 is the fallback solution

From OpenVPN

Highlights of 2.7
  • Multi-socket support for servers -- Handle multiple addresses/ports/protocols within one server
  • Improved Client support for DNS options
    • Client implementations for Linux/BSD/macOS, included with the default install
    • New client implementation for Windows, adding support for features like split DNS and DNSSEC
  • Architectural improvements on Windows
    • The block-local flag is now enforced with WFP filters
    • Windows network adapters are now generated on demand
    • Windows automatic service now runs as an unpriviledged user
    • Support for server mode in win-dco driver
    • Note: Support for the wintun driver has been removed. win-dco is now the default, tap-windows6 is the fallback solution for use-cases not covered by win-dco.
  • Improved data channel
    • Enforcement of AES-GCM usage limit
    • Epoch data keys and packet format
  • Support for new upstream DCO Linux kernel module
    • This release supports the new ovpn DCO Linux kernel module which will be available in future upstream Linux kernel releases. Backports of the new module to current kernels are available via the ovpn-backports project.
  • Client-side support for new PUSH_UPDATE control-channel message
    • This allows servers to send updates to options like routing and DNS config without triggering a reconnect.
  • PUSH_UPDATE server support (minimal)
    • New management interface commands push-update-broad and push-update-cid to send PUSH_UPDATE option updates.
  • TLS 1.3 support with bleeding-edge mbedTLS versions
  • Support for mbedTLS version 4
  • Two new environment variables have been introduced to communicate desired default gateway redirection to plugins like Network Manager.
  • Support for Epoch data channel on Windows, using the win-dco driver (2.8.0+)
  • "Recursive Routing" check is now more granular, and will only drop packets-in-tunnel if destination IP, protocol and port matches with those needed to reach the VPN server.
  • COPYING: license details only relevant to our Windows installers have been updated and moved to the openvpn-build repo

For details see Changes.rst

Windows Client: Community MSI installer for Windows client can be found at Community Downloads.

Linux Packages: Instructions for installing community-maintained Linux packages can be found in the Community Wiki.

Changes since last release candidate: https://github.com/OpenVPN/openvpn/compare/v2.7_rc6...v2.7.0

View originalPermalink
How v2.7.0 went
View all

Discussion

If you publish OpenVPN, you can claim this product by proving you administer its repository.