The OpenVPN community project team is proud to release OpenVPN 2.7.9. This is a
bugfix release fixing several security issues.
Security fixes:
* win32: restrict loading plugin dependencies (DLLs) to plugin, app and system
directories.
* win32: run openvpn.exe from the interactive service at "high integrity
level",
that is, process memory of openvpn.exe and all its threads are protected from
tampering. Signals/Events are still permitted.
* win32: openvpnserv: strictly filter user-defined environment variables before
passing to openvpn.exe (CVE-2026-121720)
(Issue found by @refiaa)
* win32: openvpnserv: make validation of openvpn command line more robust to
invalid-quoting attacks (CVE-2026-115342)
* win32: openvpn.exe: change parsing of commandline to use the same function
that
the interactive service uses (CommandLineToArgvW()) (CVE-2026-115342)
(Issues found by Heiko Hund)
Bug fixes:
* Username/Password parsing from --auth-user-pass file (or inline) left parts
of
overlong usernames in the password field. Fix. (GH OpenVPN/openvpn#1140)
* win32: openvpnserv: fix memory leak for security descriptors
* win32: repair logging of errors in Windows tun_read_queue()
* win32: avoid accessing uninitialized structure data if GetInterfaceInfo() or
GetPerAdapterInfo() fail
* win32: openvpnserv: avoid double free() if GetTokenInformation() fails
* win32: openvpnserv: avoid potential format-string issue on registry defaults
* win32: openvpnserv: repair error reporting on RegGetValueA() failures inside
GetItfDnsServersV4()
* win32: openvpnserv: fix inet_ntop() return code check in
GetItfDnsServersV6(),
making it ignore DHCP-provided DNS servers.
* route: repair printing of ROUTE_GATEWAY/ROUTE6_GATEWAY info - the actual
gateway
handling was correct, just not printing anything anymore.
* config: check_file_access: fix --extra-certs access check
* win32: tun: free gc arena in windows_set_mtu() (mem leak in error path)
* route: close socket in Haiku get_default_gateway() (FD leak)
* win32: openvpnserv: skip conversion of empty domain names
* win32: cmake+mingw: don't prefix the event message DLL with lib (it was
building
'libopenvpnservmsg.dll' instead of 'openvpnservmsg.dll')
* win32: pass the buffer size in bytes to get_openvpn_reg_value()
* PUSH_UPDATE server: free temporary options after sending message (memleak)
User-visible Changes:
* Linux: set IFF_BACKPRESSURE on Linux (if available)
This helps the kernel tun/tap to apply proper prioritization (qdisc etc) to
incoming packets if userspace is slow to process them. Without the flag, the
kernel would just drop everything.
* Management/GUI: Optionally indicate username in >PASSWORD '<UP_TYPE>' prompts
If an openvpn config has a username set but no password, and OpenVPN wants to
prompt for the password, the GUI could not see the username today and
prompted for
both. With this change, OpenVPN sends a hint to the management interface, so
a GUI
can pre-fill the username field, or only prompt for the password.
This is only done if the management interface client announces support for it
(compatibility level >= 6).
Code improvements/general hardening:
* crypto_epoch: wipe key material with secure_memzero()
* do not look up "none" cipher in OpenSSL - this avoids leaving an "error" on
the
OpenSSL error stack, which can then later lead to spurious SSL error prints
on CRL
loading.
* Make CRL reload EOF detection independent of stale error queue entries (GH:
OpenVPN/openvpn#1104)
* tls_crypt: fix handling of "cipher final output" (which is always empty on
today's
SSL libraries, so no impact today, but might not be in future)
* crypto: ASSERT() opt before first use in openvpn_decrypt_aead()
* auth_token: wipe the server secret key after loading it
* port-share: do not write journal file through symlinks or hardlinks (and also
document how port-share directory should be set up) (GH OpenVPN/openvpn#1124)
* dns-updown: close first pipe if creating the second one fails (avoid leaking
file
descriptors on error)
* init: check parameters for NULL before strlen() in send_cc_message (not
triggerable today)
* crypto_openssl: Clear PEM decoded key data before freeing it
* Increase the buffer size for alert-message in management user-pass query (so
long
usernames can be hinted towards the GUI)
* win32: openvpnserv: validate message size for dns/nrpt/wins handlers (GH:
OpenVPN/openvpn#1129)
* win32: plugin: detect too long plugin paths on Windows
* win32: openvpnserv: null-terminate iface.name in address and route handlers
(GH: OpenVPN/openvpn#1130)
Documentation improvements:
* Fix numbering of examples in management-notes.txt
* Document "notify" as auth pending method
* Convert Changes.rst to Markdown (2.7)
Long-term code maintenance:
* OpenSSL 4.1 compatibility: use ASN1_STRING_get_length() now, providing a
fallback
to ASN1_STRING_length() for older SSL libraries.
* Linux: sitnl: use RTM_SETLINK for updating existing interfaces (instead of
RTM_NEWLINK)
* gen-sample-keys.sh: Don't apply server extensions to CSRs
* review all usages of strncpy() (change to strncpynt(), memcpy(), etc. where
appropriate)
Windows MSI changes since 2.7.8-I001:
* Improve setting ACLs for non-"Program Files" installation directories.
There were some configurations where the intended ACLs were not applied.
(GH: OpenVPN/openvpn-build#1520)
(Issue found by @refiaa)
* Update included openvpn-gui to 11.67
* Support username indication in communication with OpenVPN (see above).
Prefills
the username in prompt to user. (GH: OpenVPN/openvpn-gui#719)
* Fix tray tooltip and popup positioning on non-primary monitors (GH:
OpenVPN/openvpn-gui#836)
* Improve Swedish translation (GH: OpenVPN/openvpn-gui#828)
More details can be found in the Changes document:
<https://github.com/OpenVPN/openvpn/blob/v2.7.9/Changes.md>
Source code and Windows installers can be downloaded from our download page:
<https://openvpn.net/community/>
Packages for Debian, Ubuntu, Fedora, RHEL, and openSUSE are available in the
various
official Community repositories:
<https://community.openvpn.net/Pages/OpenVPN%20software%20repos>
Kind regards,
--
Frank Lichtenheld
_______________________________________________
Openvpn-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openvpn-devel