Commit 5d9194

2025-02-11 10:05:03 Samuli Seppänen: Add Changes in OpenVPN 2.1 page
/dev/null .. Changelogs/ChangesInOpenVPN21.md
@@ 0,0 1,1191 @@
+ ```
+ OpenVPN Change Log
+ Copyright (C) 2002-2010 OpenVPN Technologies, Inc. <
+ sales@openvpn.net>
+
+ 2010.11.09 -- Version 2.1.4
+
+ * Fix problem with special case route targets ('remote_host')
+ The init_route() function will leave &netlist untouched for
+ get_special_addr() routes ("remote_host" being one of them).
+ netlist is on stack, contains random garbage, and
+ netlist.len will not be 0 - thus, random stack data is copied from
+ netlist.data[] until the route_list is full.
+ Thanks to Teodo MICU and Gert Doering for finding and fixing this issue.
+
+
+ 2010.08.20 -- Version 2.1.3
+
+ * Windows build fixes
+ Attempt to fix issue where domake-win build system was not properly
+ signing drivers and .exe files. This change is only affecting the
+ Windows build scripts and not the OpenVPN code base.
+
+ 2010.08.09 -- Version 2.1.2
+
+ * Windows security issue:
+ Fixed potential local privilege escalation vulnerability in
+ Windows service. The Windows service did not properly quote the
+ executable filename passed to CreateService. A local attacker
+ with write access to the root directory C:\ could create an
+ executable that would be run with the same privilege level as
+ the OpenVPN Windows service. However, since non-Administrative
+ users normally lack write permission on C:\, this vulnerability
+ is generally not exploitable except on older versions of Windows
+ (such as Win2K) where the default permissions on C:\ would allow
+ any user to create files there.
+ Credit: Scott Laurie, MWR InfoSecurity
+
+ * Added Python-based based alternative build system for Windows using
+ Visual Studio 2008 (in win directory).
+
+ * When aborting in a non-graceful way, try to execute do_close_tun in
+ init.c prior to daemon exit to ensure that the tun/tap interface is
+ closed and any added routes are deleted.
+
+ * Fixed an issue where AUTH_FAILED was not being properly delivered
+ to the client when a bad password is given for mid-session reauth,
+ causing the connection to fail without an error indication.
+
+ * Don't advance to the next connection profile on AUTH_FAILED errors.
+
+ * Fixed an issue in the Management Interface that could cause
+ a process hang with 100% CPU utilization in --management-client
+ mode if the management interface client disconnected at the
+ point where credentials are queried.
+
+ * Fixed an issue where if reneg-sec was set to 0 on the client,
+ so that the server-side value would take precedence,
+ the auth_deferred_expire_window function would incorrectly
+ return a window period of 0 seconds. In this case, the
+ correct window period should be the handshake window
+ period.
+
+ * Modified ">PASSWORD:Verification Failed" management interface
+ notification to include a client reason string:
+
+ >PASSWORD:Verification Failed: 'AUTH_TYPE' ['REASON_STRING']
+
+ * Enable exponential backoff in reliability layer
+ retransmits.
+
+ * Set socket buffers (SO_SNDBUF and SO_RCVBUF) immediately after
+ socket is created rather than waiting until after connect/listen.
+
+ * Management interface performance optimizations:
+
+ 1. Added env-filter MI command to perform filtering on env vars
+ passed through as a part of --management-client-auth
+
+ 2. man_write will now try to aggregate output into larger blocks
+ (up to 1024 bytes) for more efficient i/o
+
+ * Fixed minor issue in Windows TAP driver DEBUG builds
+ where non-null-terminated unicode strings were being
+ printed incorrectly.
+
+ * Fixed issue on Windows with MSVC compiler, where TCP_NODELAY support
+ was not being compiled in.
+
+ * Proxy improvements:
+
+ Improved the ability of http-auth "auto" flag to dynamically detect
+ the auth method required by the proxy.
+
+ Added http-auth "auto-nct" flag to reject weak proxy auth methods.
+
+ Added HTTP proxy digest authentication method.
+
+ Removed extraneous openvpn_sleep calls from proxy.c.
+
+ * Implemented http-proxy-override and http-proxy-fallback directives to make it
+ easier for OpenVPN client UIs to start a pre-existing client config file with
+ proxy options, or to adaptively fall back to a proxy connection if a direct
+ connection fails.
+
+ * Implemented a key/value auth channel from client to server.
+
+ * Fixed issue where bad creds provided by the management interface
+ for HTTP Proxy Basic Authentication would go into an infinite
+ retry-fail loop instead of requerying the management interface for
+ new creds.
+
+ * Added support for MSVC debugging of openvpn.exe in settings.in:
+
+ # Build debugging version of openvpn.exe
+ !define PRODUCT_OPENVPN_DEBUG
+
+ * Implemented multi-address DNS expansion on the network field of route
+ commands.
+
+ When only a single IP address is desired from a multi-address DNS
+ expansion, use the first address rather than a random selection.
+
+ * Added --register-dns option for Windows.
+
+ Fixed some issues on Windows with --log, subprocess creation
+ for command execution, and stdout/stderr redirection.
+
+ * Fixed an issue where application payload transmissions on the
+ TLS control channel (such as AUTH_FAILED) that occur during
+ or immediately after a TLS renegotiation might be dropped.
+
+ * Added warning about tls-remote option in man page.
+
+ 2009.12.11 -- Version 2.1.1
+
+ * Fixed some breakage in openvpn.spec (which is required to build an
+ RPM distribution) where it was referencing a non-existent
+ subdirectory in the tarball, causing it to fail (patch from
+ David Sommerseth).
+
+ 2009.12.11 -- Version 2.1.0
+
+ * Fixed a couple issues in sample plugins auth-pam.c and down-root.c.
+ (1) Fail gracefully rather than segfault if calloc returns NULL.
+ (2) The openvpn_plugin_abort_v1 function can potentially be called
+ with handle == NULL. Add code to detect this case, and if so, avoid
+ dereferencing pointers derived from handle (Thanks to David
+ Sommerseth for finding this bug).
+
+ * Documented "multihome" option in the man page.
+
+ 2009.11.20 -- Version 2.1_rc22
+
+ * Fixed a client-side bug on Windows that occurred when the
+ "dhcp-pre-release" or "dhcp-renew" options were combined with
+ "route-gateway dhcp". The release/renew would not occur
+ because the Windows DHCP renew function is blocking and
+ therefore must be called from another process or thread
+ so as not to stall the tunnel.
+
+ * Added a hard failure when peer provides a certificate chain
+ with depth > 16. Previously, a warning was issued.
+
+ 2009.11.12 -- Version 2.1_rc21
+
+ * Rebuilt OpenVPN Windows installer with OpenSSL 0.9.8l to address
+ CVE-2009-3555. Note that OpenVPN has never relied on the session
+ renegotiation capabilities that are built into the SSL/TLS protocol,
+ therefore the fix in OpenSSL 0.9.8l (disable SSL/TLS renegotiation
+ completely) will not adversely affect OpenVPN mid-session SSL/TLS
+ renegotation or any other OpenVPN capabilities.
+
+ * Added additional session renegotiation hardening. OpenVPN has always
+ required that mid-session renegotiations build up a new SSL/TLS
+ session from scratch. While the client certificate common name is
+ already locked against changes in mid-session TLS renegotiations, we
+ now extend this locking to the auth-user-pass username as well as all
+ certificate content in the full client certificate chain.
+
+ 2009.10.01 -- Version 2.1_rc20
+
+ * Fixed a bug introduced in 2.1_rc17 (svn r4436) where using the
+ redirect-gateway option by itself, without any extra parameters,
+ would cause the option to be ignored.
+
+ * Fixed build problem when ./configure --disable-server is used.
+
+ * Fixed ifconfig command for "topology subnet" on FreeBSD (Stefan Bethke).
+
+ * Added --remote-random-hostname option.
+
+ * Added "load-stats" management interface command to get global server
+ load statistics.
+
+ * Added new ./configure flags:
+
+ --disable-def-auth Disable deferred authentication
+ --disable-pf Disable internal packet filter
+
+ * Added "setcon" directive for interoperability with SELinux (Sebastien
+ Raveau).
+
+ * Optimized PUSH_REQUEST handshake sequence to shave several seconds
+ off of a typical client connection initiation.
+
+ * The maximum number of "route" directives (specified in the config
+ file or pulled from a server) can now be configured via the new
+ "max-routes" directive.
+
+ * Eliminated the limitation on the number of options that can be pushed
+ to clients, including routes. Previously, all pushed options needed
+ to fit within a 1024 byte options string.
+
+ * Added --server-poll-timeout option : when polling possible remote
+ servers to connect to in a round-robin fashion, spend no more than
+ n seconds waiting for a response before trying the next server.
+
+ * Added the ability for the server to provide a custom reason string
+ when an AUTH_FAILED message is returned to the client. This
+ string can be set by the server-side managment interface and read
+ by the client-side management interface.
+
+ * client-kill management interface command, when issued on server, will
+ now send a RESTART message to client.
+ This feature is intended to make UDP clients respond the same as TCP
+ clients in the case where the server issues a RESTART message in
+ order to force the client to reconnect and pull a new options/route
+ list.
+
+ 2009.07.16 -- Version 2.1_rc19
+
+ * In Windows TAP driver, refactor DHCP/ARP packet injection code to
+ use a DPC (deferred procedure call) to defer packet injection until
+ IRQL < DISPATCH_LEVEL, rather than calling NdisMEthIndicateReceive
+ in the context of AdapterTransmit. This is an attempt to reduce kernel
+ stack usage, and prevent EXCEPTION_DOUBLE_FAULT BSODs that have been
+ observed on Vista. Updated TAP driver version number to 9.6.
+
+ * In configure.ac, use datadir instead of datarootdir for compatibility
+ with <autoconf-2.60.
+
+ 2009.06.07 -- Version 2.1_rc18
+
+ * Fixed compile error on ./configure --enable-small
+
+ * Fixed issue introduced in r4475 (2.1-rc17) where cryptoapi.c change
+ does not build on Windows on non-MINGW32.
+
+ 2009.05.30 -- Version 2.1_rc17
+
+ * Reduce the debug level (--verb) at which received management interface
+ commands are echoed from 7 to 3. Passwords will be filtered.
+
+ * Fixed race condition in management interface recv code on
+ Windows, where sending a set of several commands to the
+ management interface in quick succession might cause the
+ latter commands in the set to be ignored.
+
+ * Increased management interface input command buffer size
+ from 256 to 1024 bytes.
+
+ * Minor tweaks to Windows build system.
+
+ * Added "redirect-private" option which allows private subnets
+ to be pushed to the client in such a way that they don't accidently
+ obscure critical local addresses such as the DHCP server address and
+ DNS server addresses.
+
+ * Added new 'autolocal' redirect-gateway flag. When enabled, the OpenVPN
+ client will examine the routing table and determine whether (a) the
+ OpenVPN server is reachable via a locally connected interface, or (b)
+ traffic to the server must be forwarded through the default router.
+ Only add a special bypass route for the OpenVPN server if (b) is true.
+ If (a) is true, behave as if the 'local' flag is specified, and do not
+ add a bypass route.
+
+ The new 'autolocal' flag depends on the non-portable test_local_addr()
+ function in route.c, which is currently only implemented for Windows.
+ The 'autolocal' flag will act as a no-op on platforms that have not
+ yet defined a test_local_addr() function.
+
+ * Increased TLS_CHANNEL_BUF_SIZE to 2048 from 1024 (this will allow for
+ more option content to be pushed from server to client).
+
+ * Raised D_MULTI_DROPPED debug level to 4 from 3 to filter out (at debug
+ levels <=3) a common and usually innocuous warning.
+
+ * Fixed issue of symbol conflicts interfering with Windows CryptoAPI
+ functionality (Alon Bar-Lev).
+
+ * Fixed bug where the remote_X environmental variables were not being
+ set correctly when the 'local' option is specifed.
+
+ 2009.05.17 -- Version 2.1_rc16
+
+ * Windows installer changes:
+
+ 1. ifdefed out the check Windows version code which is causing
+ problems on Windows 7
+
+ 2. don't define SF_SELECTED if it is already defined
+
+ 3. Use LZMA instead of BZIP2 compression for better compression
+
+ 4. Upgraded OpenSSL to 0.9.8k
+
+ * Added the ability to read the configuration file
+ from stdin, when "stdin" is given as the config
+ file name.
+
+ * Allow "management-client" directive to be used
+ with unix domain sockets.
+
+ * Added errors-to-stderr option. When enabled, fatal errors
+ that result in the termination of the daemon will be written
+ to stderr.
+
+ * Added optional "nogw" (no gateway) flag to --server-bridge
+ to inhibit the pushing of the route-gateway parameter to
+ clients.
+
+ * Added new management interface command "pid" to show the
+ process ID of the current OpenVPN process (Angelo Laub).
+
+ * Fixed issue where SIGUSR1 restarts would fail if private
+ key was specified as an inline file.
+
+ * Added daemon_start_time and daemon_pid environmental variables.
+
+ * In management interface, added new ">CLIENT:ESTABLISHED" notification.
+
+ * Build fixes:
+
+ 1. Fixed some issues with C++ style comments that leaked into the code.
+
+ 2. Updated configure.ac to work on MinGW64.
+
+ 3. Updated common.h types for _WIN64.
+
+ 4. Fixed issue involving an #ifdef in a macro reference that breaks early gcc
+ compilers.
+
+ 5. In cryptoapi.c, renamed CryptAcquireCertificatePrivateKey to
+ OpenVPNCryptAcquireCertificatePrivateKey to work around
+ a symbol conflict in MinGW-5.1.4.
+
+ 2008.11.19 -- Version 2.1_rc15
+
+ * Fixed issue introduced in 2.1_rc14 that may cause a
+ segfault when a --plugin module is used.
+
+ * Added server-side --opt-verify option: clients that connect
+ with options that are incompatible with those of the server
+ will be disconnected (without this option, incompatible
+ clients would trigger a warning message in the server log
+ but would not be disconnected).
+
+ * Added --tcp-nodelay option: Macro that sets TCP_NODELAY socket
+ flag on the server as well as pushes it to connecting clients.
+
+ * Minor options check fix: --no-name-remapping is a
+ server-only option and should therefore generate an
+ error when used on the client.
+
+ * Added --prng option to control PRNG (pseudo-random
+ number generator) parameters. In previous OpenVPN
+ versions, the PRNG was hardcoded to use the SHA1
+ hash. Now any OpenSSL hash may be used. This is
+ part of an effort to remove hardcoded references to
+ a specific cipher or cryptographic hash algorithm.
+
+ * Cleaned up man page synopsis.
+
+ 2008.11.16 -- Version 2.1_rc14
+
+ * Added AC_GNU_SOURCE to configure.ac to enable struct ucred,
+ with the goal of fixing a build issue on Fedora 9 that was
+ introduced in 2.1_rc13.
+
+ * Added additional method parameter to --script-security to preserve
+ backward compatibility with system() call semantics used in OpenVPN
+ 2.1_rc8 and earlier. To preserve backward compatibility use:
+
+ script-security 3 system
+
+ * Added additional warning messages about --script-security 2
+ or higher being required to execute user-defined scripts or
+ executables.
+
+ * Windows build system changes:
+
+ Modified Windows domake-win build system to write all openvpn.nsi
+ input files to gen, so that gen can be disconnected from
+ the rest of the source tree and makensis openvpn.nsi will
+ still function correctly.
+
+ Added additional SAMPCONF_(CA|CRT|KEY) macros to settings.in
+ (commented out by default).
+
+ Added optional files SAMPCONF_CONF2 (second sample configuration
+ file) and SAMPCONF_DH (Diffie-Helman parameters) to Windows
+ build system, and may be defined in settings.in.
+
+ * Extended Management Interface "bytecount" command
+ to work when OpenVPN is running as a server.
+ Documented Management Interface "bytecount" command in
+ management/management-notes.txt.
+
+ * Fixed informational message in ssl.c to properly indicate
+ deferred authentication.
+
+ * Added server-side --auth-user-pass-optional directive, to allow
+ connections by clients that do not specify a username/password, when a
+ user-defined authentication script/module is in place (via
+ --auth-user-pass-verify, --management-client-auth, or a plugin module).
+
+ * Changes to easy-rsa/2.0/pkitool and related openssl.cnf:
+
+ Calling scripts can set the KEY_NAME environmental variable to set
+ the "name" X509 subject field in generated certificates.
+
+ Modified pkitool to allow flexibility in separating the Common Name
+ convention from the cert/key filename convention.
+
+ For example:
+
+ KEY_CN="James's Laptop" KEY_NAME="james" ./pkitool james
+
+ will create a client certificate/key pair of james.crt/james.key
+ having a Common Name of "James's Laptop" and a Name of "james".
+
+ * Added --no-name-remapping option to allow Common Name, X509 Subject,
+ and username strings to include any printable character including
+ space, but excluding control characters such as tab, newline, and
+ carriage-return (this is important for compatibility with external
+ authentication systems).
+
+ As a related change, added --status-version 3 format (and "status 3"
+ in the management interface) which uses the version 2 format except
+ that tabs are used as delimiters instead of commas so that there
+ is no ambiguity when parsing a Common Name that contains a comma.
+
+ Also, save X509 Subject fields to environment, using the naming
+ convention:
+
+ X509_{cert_depth}_{name}={value}
+
+ This is to avoid ambiguities when parsing out the X509 subject string
+ since "/" characters could potentially be used in the common name.
+
+ * Fixed some ifconfig-pool issues that precluded it from being combined
+ with --server directive.
+
+ Now, for example, we can configure thusly:
+
+ server 10.8.0.0 255.255.255.0 nopool
+ ifconfig-pool 10.8.0.2 10.8.0.99 255.255.255.0
+
+ to have ifconfig-pool manage only a subset
+ of the VPN subnet.
+
+ * Added config file option "setenv FORWARD_COMPATIBLE 1" to relax
+ config file syntax checking to allow directives for future OpenVPN
+ versions to be ignored.
+
+ 2008.10.07 -- Version 2.1_rc13
+
+ * Bundled OpenSSL 0.9.8i with Windows installer.
+
+ * Management interface can now listen on a unix
+ domain socket, for example:
+
+ management /tmp/openvpn unix
+
+ Also added management-client-user and management-client-group
+ directives to control which processes are allowed to connect
+ to the socket.
+
+ * Copyright change to OpenVPN Technologies, Inc.
+
+ 2008.09.23 -- Version 2.1_rc12
+
+ * Patched Makefile.am so that the new t_cltsrv-down.sh script becomes
+ part of the tarball (Matthias Andree).
+
+ * Fixed --lladdr bug introduced in 2.1-rc9 where input validation code
+ was incorrectly expecting the lladdr parameter to be an IP address
+ when it is actually a MAC address (HoverHell).
+
+ 2008.09.14 -- Version 2.1_rc11
+
+ * Fixed a bug that can cause SSL/TLS negotiations in UDP mode
+ to fail if UDP packets are dropped.
+
+ 2008.09.10 -- Version 2.1_rc10
+
+ * Added "--server-bridge" (without parameters) to enable
+ DHCP proxy mode: Configure server mode for ethernet
+ bridging using a DHCP-proxy, where clients talk to the
+ OpenVPN server-side DHCP server to receive their IP address
+ allocation and DNS server addresses.
+
+ * Added "--route-gateway dhcp", to enable the extraction
+ of the gateway address from a DHCP negotiation with the
+ OpenVPN server-side LAN.
+
+ * Fixed minor issue with --redirect-gateway bypass-dhcp or bypass-dns
+ on Windows. If the bypass IP address is 0.0.0.0 or 255.255.255.255,
+ ignore it.
+
+ * Warn when ethernet bridging that the IP address of the bridge adapter
+ is probably not the same address that the LAN adapter was set to
+ previously.
+
+ * When running as a server, warn if the LAN network address is
+ the all-popular 192.168.[0|1].x, since this condition commonly
+ leads to subnet conflicts down the road.
+
+ * Primarily on the client, check for subnet conflicts between
+ the local LAN and the VPN subnet.
+
+ * Added a 'netmask' parameter to get_default_gateway, to return
+ the netmask of the adapter containing the default gateway.
+ Only implemented on Windows so far. Other platforms will
+ return 255.255.255.0. Currently the netmask information is
+ only used to warn about subnet conflicts.
+
+ * Minor fix to cryptoapi.c to not compile itself unless USE_CRYPTO
+ and USE_SSL flags are enabled (Alon Bar-Lev).
+
+ * Updated openvpn/t_cltsrv.sh (used by "make check") to conform to new
+ --script-security rules. Also adds retrying if the addresses are in
+ use (Matthias Andree).
+
+ * Fixed build issue with ./configure --disable-socks --disable-http.
+
+ * Fixed separate compile errors in options.c and ntlm.c that occur
+ on strict C compilers (such as old versions of gcc) that require
+ that C variable declarations occur at the start of a {} block,
+ not in the middle.
+
+ * Workaround bug in OpenSSL 0.9.6b ASN1_STRING_to_UTF8, which
+ the new implementation of extract_x509_field_ssl depends on.
+
+ * LZO compression buffer overflow errors will now invalidate
+ the packet rather than trigger a fatal assertion.
+
+ * Fixed minor compile issue in ntlm.c (mid-block declaration).
+
+ * Added --allow-pull-fqdn option which allows client to pull DNS names
+ from server (rather than only IP address) for --ifconfig, --route, and
+ --route-gateway. OpenVPN versions 2.1_rc7 and earlier allowed DNS names
+ for these options to be pulled and translated to IP addresses by default.
+ Now --allow-pull-fqdn will be explicitly required on the client to enable
+ DNS-name-to-IP-address translation of pulled options.
+
+ * 2.1_rc8 and earlier did implicit shell expansion on script
+ arguments since all scripts were called by system().
+ The security hardening changes made to 2.1_rc9 no longer
+ use system(), but rather use the safer execve or CreateProcess
+ system calls. The security hardening also introduced a
+ backward incompatibility with 2.1_rc8 and earlier in that
+ script parameters were no longer shell-expanded, so
+ for example:
+
+ client-connect "docc CLIENT-CONNECT"
+
+ would fail to work because execve would try to execute
+ a script called "docc CLIENT-CONNECT" instead of "docc"
+ with "CLIENT-CONNECT" as the first argument.
+
+ This patch fixes the issue, bringing the script argument
+ semantics back to pre 2.1_rc9 behavior in order to preserve
+ backward compatibility while still using execve or CreateProcess
+ to execute the script/executable.
+
+ * Modified ip_or_dns_addr_safe, which validates pulled DNS names,
+ to more closely conform to RFC 3696:
+
+ (1) DNS name length must not exceed 255 characters
+
+ (2) DNS name characters must be limited to alphanumeric,
+ dash ('-'), and dot ('.')
+
+ * Fixed bug in intra-session TLS key rollover that was introduced with
+ deferred authentication features in 2.1_rc8.
+
+ 2008.07.31 -- Version 2.1_rc9
+
+ * Security Fix -- affects non-Windows OpenVPN clients running
+ OpenVPN 2.1-beta14 through 2.1-rc8 (OpenVPN 2.0.x clients are NOT
+ vulnerable nor are any versions of the OpenVPN server vulnerable).
+ An OpenVPN client connecting to a malicious or compromised
+ server could potentially receive an "lladdr" or "iproute" configuration
+ directive from the server which could cause arbitrary code execution on
+ the client. A successful attack requires that (a) the client has agreed
+ to allow the server to push configuration directives to it by including
+ "pull" or the macro "client" in its configuration file, (b) the client
+ successfully authenticates the server, (c) the server is malicious or has
+ been compromised and is under the control of the attacker, and (d) the
+ client is running a non-Windows OS. Credit: David Wagner.
+ CVE-2008-3459
+
+ * Miscellaneous defensive programming changes to multiple
+ areas of the code. In particular, use of the system() call
+ for calling executables such as ifconfig, route, and
+ user-defined scripts has been completely revamped in favor
+ of execve() on unix and CreateProcess() on Windows.
+
+ * In Windows build, package a statically linked openssl.exe to work around
+ observed instabilities in the dynamic build since the migration to
+ OpenSSL 0.9.8h.
+
+ 2008.06.11 -- Version 2.1_rc8
+
+ * Added client authentication and packet filtering capability
+ to management interface. In addition, allow OpenVPN plugins
+ to take advantage of deferred authentication and packet
+ filtering capability.
+
+ * Added support for client-side connection profiles.
+
+ * Fixed unbounded memory growth bug in environmental variable
+ code that could have caused long-running OpenVPN sessions
+ with many TLS renegotiations to incrementally
+ increase memory usage over time.
+
+ * Windows release now packages openssl-0.9.8h.
+
+ * Build system changes -- allow building on Windows using
+ autoconf/automake scripts (Alon Bar-Lev).
+
+ * Changes to Windows build system to make it easier to do
+ partial builds, with a reduced set of prerequisites,
+ where only a subset of OpenVPN installer
+ components are built. See ./domake-win comments.
+
+ * Cleanup IP address for persistence interfaces for tap and also
+ using ifconfig, gentoo#209055 (Alon Bar-Lev).
+
+ * Fall back to old version of extract_x509_field for OpenSSL 0.9.6.
+
+ * Clarified tcp-queue-limit man page entry (Matti Linnanvuori).
+
+ * Added new OpenVPN icon and installer graphic.
+
+ * Minor pkitool changes.
+
+ * Added --pkcs11-id-management option, which will cause OpenVPN to
+ query the management interface via the new NEED-STR asynchronous
+ notification query to get additional PKCS#11 options (Alon Bar-Lev).
+
+ * Added NEED-STR management interface asynchronous query and
+ "needstr" management interface command to respond to the query
+ (Alon Bar-Lev).
+
+ * Added Dragonfly BSD support (Francis-Gudin).
+
+ * Quote device names before passing to up/down script (Josh Cepek).
+
+ * Bracketed struct openvpn_pktinfo with #pragma pack(1) to
+ prevent structure padding from causing an incorrect length
+ to be returned by sizeof (struct openvpn_pktinfo) on 64-bit
+ platforms.
+
+ * On systems that support res_init, always call it
+ before calling gethostbyname to ensure that
+ resolver configuration state is current.
+
+ * Added NTLMv2 proxy support (Miroslav Zajic).
+
+ * Fixed an issue in extract_x509_field_ssl where the extraction
+ would fail on the first field of the subject name, such as
+ the common name in: /CN=foo/emailAddress=
+ foo@bar.com
+
+ * Made "Linux ip addr del failed" error nonfatal.
+
+ * Amplified --client-cert-not-required warning.
+
+ * Added #pragma pack to proto.h.
+
+ 2008.01.29 -- Version 2.1_rc7
+
+ * Added a few extra files that exist in the svn repo but were
+ not being copied into the tarball by make dist.
+
+ * Fixup null interface on close, don't use ip addr flush (Alon Bar-Lev).
+
+ 2008.01.24 -- Version 2.1_rc6
+
+ * Fixed options checking bug introduced in rc5 where legitimate configuration
+ files might elicit the error: "Options error: Parameter pkcs11_private_mode
+ can only be specified in TLS-mode, i.e. where --tls-server or --tls-client
+ is also specified."
+
+ 2008.01.23 -- Version 2.1_rc5
+
+ * Fixed Win2K TAP driver bug that was introduced by Vista fixes,
+ incremented driver version to 9.4.
+
+ * Windows build system changes:
+
+ Incremented included OpenSSL version to openssl-0.9.7m.
+
+ Updated openssl.patch for openssl-0.9.7m and added some
+ brief usage comments to the head of the patch.
+
+ Added build-pkcs11-helper.sh for building the pkcs11-helper
+ library.
+
+ Integrated inclusion of pkcs11-helper into Windows build
+ system.
+
+ Upgraded TAP build scripts to use WDK 6001.17121
+ (Windows 2008 Server pre-RTM).
+
+ * Windows installer changes:
+
+ Clean up the start menu folder.
+
+ Allow for a site-specific sample configuration file and keys
+ to be included in a custom installer (see SAMPCONF macros
+ in settings.in).
+
+ New icon (temporary).
+
+ * Added "forget-passwords" command to the management interface
+ (Alon Bar-Lev).
+
+ * Added --management-signal option to signal SIGUSR1 when the
+ management interface disconnects (Alon Bar-Lev).
+
+ * Modified command line and config file parser to allow
+ quoted strings using single quotes ('') (Alon Bar-Lev).
+
+ * Use pkcs11-helper as external library, can be downloaded from
+ https://www.opensc-project.org/pkcs11-helper (Alon Bar-Lev).
+
+ * Fixed interim memory growth issue in TCP connect loop where
+ "TCP: connect to %s failed, will try again in %d seconds: %s"
+ is output.
+
+ * Fixed bug in epoll driver in event.c, where the lack of a
+ handler for EPOLLHUP could cause 99% CPU usage.
+
+ * Defined ALLOW_NON_CBC_CIPHERS for people who don't
+ want to use a CBC cipher for OpenVPN's data channel.
+
+ * Added PLUGIN_LIBDIR preprocessor string to prepend a default
+ plugin directory to the dlopen search list when the user
+ specifies the basename of the plugin only (Marius Tomaschewski).
+
+ * Rewrote extract_x509_field and modified COMMON_NAME_CHAR_CLASS
+ to allow forward slash characters ("/") in the X509 common name
+ (Pavel Shramov).
+
+ * Allow OpenVPN to run completely unprivileged under Linux
+ by allowing openvpn --mktun to be used with --user and --group
+ to set the UID/GID of the tun device node. Also added --iproute
+ option to allow an alternative command to be executed in place
+ of the default iproute2 command (Alon Bar-Lev).
+
+ * Fixed --disable-iproute2 in ./configure to actually disable
+ iproute2 usage (Alon Bar-Lev).
+
+ * Added --management-forget-disconnect option -- forget
+ passwords when management session disconnects (Alon Bar-Lev).
+
+ 2007.04.25 -- Version 2.1_rc4
+
+ * Worked out remaining issues with TAP driver signing
+ on Vista x64. OpenVPN will now run on Vista x64
+ with driver signing enforcement enabled.
+
+ * Fixed 64-bit portability bug in time_string function
+ (Thomas Habets).
+
+ 2007.04.22 -- Version 2.1_rc3
+
+ * Additional fixes to TAP driver for Windows x64. Driver
+ now runs successfully on Vista x64 if driver signing
+ enforcement is disabled.
+
+ * The Windows Installer and TAP driver are now signed by
+ OpenVPN Solutions LLC (in addition to the usual GnuPG
+ signatures).
+
+ * Added OpenVPN GUI (Mathias Sundman version) as install
+ option in Windows installer.
+
+ * Clean up configure on FreeBSD for recent autotool versions
+ that require that all .h files have to be compiled.
+ Also, FreeBSD install does not support GNU long options
+ which the Makefile in easy-rsa/2.0 uses (not checked the
+ others as we don't install those on Gentoo) (Roy Marples).
+
+ * Added additional scripts to easy-rsa/Windows for working
+ with password-protected keys; also add -extensions server
+ option when generating server cert via
+ build-key-server-pass.bat (Daniel Zauft).
+
+ 2007.02.27 -- Version 2.1_rc2
+
+ * auth-pam change: link with -lpam rather
+ than dlopen (Roy Marples).
+
+ * Prevent SIGUSR1 or SIGHUP from causing program
+ exit from initial management hold.
+
+ * SO_REUSEADDR should not be set on Windows TCP sockets
+ because it will cause bind to succeed on port conflicts.
+
+ * Added time_ascii, time_duration, and time_unix
+ environmental variables for plugins and callback
+ scripts.
+
+ * Fixed issue where OpenVPN does not apply the --txqueuelen option
+ to persistent interfaces made with --mktun (Roy Marples).
+
+ * Attempt at rational signal handling when in the
+ management hold state. During management hold, ignore
+ SIGUSR1/SIGHUP signals thrown with the "signal" command.
+ Also, "signal" command will now apply remapping as
+ specified with the --remap-usr1 option.
+ When a signal entered using the "signal" command from a management
+ hold is ignored, output: >HOLD:Waiting for hold release
+
+ * Fixed issue where struct env_set methods that
+ change the value of an existing name=value pair
+ would delay the freeing of the memory held by
+ the previous name=value pair until the underlying
+ client instance object is closed.
+ This could cause a server that handles long-term
+ client connections, resulting in many periodic calls
+ to verify_callback, to needlessly grow the env_set
+ memory allocation until the underlying client instance
+ object is closed.
+
+ * Renamed TAP-Win32 driver from tap0801.sys to tap0901.sys
+ to reflect the fact that Vista has blacklisted the tap0801.sys
+ file name due to previous compatibility issues which have now
+ been resolved. TAP-Win32 major/minor version number is now 9/1.
+
+ * Windows installer will delete a previously installed
+ tap0801.sys TAP driver before installing tap0901.sys.
+
+ * Added code to Windows installer to fail gracefully on 64 bit
+ installs until 64-bit TAP driver issues can be resolved.
+
+ * Added code to Windows installer to fail gracefully on
+ versions of Windows which are not explicitly supported.
+
+ * The Windows version will now use a default route-delay
+ of 5 seconds to deal with an apparent routing table race
+ condition on Vista.
+
+ * Worked around an incompatibility in the Windows Vista
+ version of CreateIpForwardEntry as described in
+ http://www.nynaeve.net/?p=59
+ This issue would cause route additions using the
+ IP Helper API to fail on Vista.
+
+ * On Windows, revert to "ip-win32 dynamic" as the default.
+
+ 2006.10.31 -- Version 2.1_rc1
+
+ * Support recovery (return to hold) from signal at
+ management password prompt.
+
+ * Added workaround for OpenSC PKCS#11 bug#108
+ (Alon Bar-Lev).
+
+ 2006.10.01 -- Version 2.1-beta16
+
+ * Windows installer updated with OpenSSL 0.9.7l DLLs to fix
+ published vulnerabilities.
+
+ * Fixed TAP-Win32 bug that caused BSOD on Windows Vista
+ (Henry Nestler).
+
+ * Autodetect 32/64 bit Windows in installer and install
+ appropriate TAP driver (Mathias Sundman, Hypherion).
+
+ * Fixed bug in loopback self-test introduced
+ in 2.1-beta15 where self test as invoked by
+ "make check" would not properly exit after
+ 2 minutes (Paul Howarth).
+
+ 2006.09.12 -- Version 2.1-beta15
+
+ * Windows installer updated with OpenSSL 0.9.7k DLLs to fix
+ RSA Signature Forgery (CVE-2006-4339).
+
+ * Fixed bug introduced with the --port-share directive
+ (back in 2.1-beta9 which causes TLS soft resets
+ (1 per hour by default) in TCP server mode to force
+ a blockage of tunnel packets and later time-out and
+ restart the connection.
+
+ * easy-rsa update (Alon Bar-Lev)
+ Makefile (install) is now available so that
+ distribs will be able to install it safely.
+
+ * PKCS#11 changes: (Alon Bar-Lev)
+ - Modified ssl.c to not FATAL and return to init.c
+ so auth-retry will work.
+ - Modifed pkcs11-helper.c to fix some problem with
+ multiple providers.
+ - Added retry counter to PKCS#11 PIN hook.
+ - Modified PKCS#11 PIN retry loop to return correct error
+ code when PIN is incorrect.
+ - Fix handling (ignoring) zero sized attributes.
+ - Fix gcc-2 issues.
+ - Fix openssl 0.9.6 (first version) issues.
+
+ * Minor fixes of lladdr (Alon Bar-Lev)
+ Updated makefile.w32-vc to include lladdr.*, updated
+ linkage libraries.
+ Modified lladdr.c to be compiled under visual C.
+
+ * Added two new management states:
+ OPENVPN_STATE_RESOLVE -- DNS lookup
+ OPENVPN_STATE_TCP_CONNECT -- Connecting to TCP server
+
+ * Echo management state change to log.
+
+ * Minor syshead.h change for NetBSD to allow
+ TCP_NODELAY flag to work.
+
+ * Modified --port-share code to remove the assumption that
+ CMSG_SPACE always evaluates to a constant, to enable
+ compilation on NetBSD and possibly other BSDs as well.
+
+ * Eliminated gcc 3.3.3 warnings on NetBSD
+ when ./configure --enable-strict is used.
+
+ * Added optional minimum-number-of-bytes parameter
+ to --inactive directive.
+
+ 2006.04.13 -- Version 2.1-beta14
+
+ * Fixed Windows server bug in time backtrack handling code which
+ could cause TLS negotiation failures on legitimate clients.
+
+ * Rewrote gettimeofday function for Windows to be
+ simpler and more efficient.
+
+ * Merged PKCS#11 extensions to easy-rsa/2.0 (Alon Bar-Lev).
+
+ * Added --route-metric option to set a default route metric
+ for --route (Roy Marples).
+
+ * Added --lladdr option to specify the link layer (MAC) address
+ for the tap interface on non-Windows platforms (Roy Marples).
+
+ 2006.04.12 -- Version 2.1-beta13
+
+ * Code added in 2.1-beta7 and 2.0.6-rc1 to extend byte counters
+ to 64 bits caused a bug in the Windows version which has now
+ been fixed. The bug could cause intermittent crashes.
+
+ 2006.04.05 -- Version 2.1-beta12
+
+ * Security Vulnerability -- An OpenVPN client connecting to a
+ malicious or compromised server could potentially receive
+ "setenv" configuration directives from the server which could
+ cause arbitrary code execution on the client via a LD_PRELOAD
+ attack. A successful attack appears to require that (a) the
+ client has agreed to allow the server to push configuration
+ directives to it by including "pull" or the macro "client" in
+ its configuration file, (b) the client configuration file uses
+ a scripting directive such as "up" or "down", (c) the client
+ succesfully authenticates the server, (d) the server is
+ malicious or has been compromised and is under the control of
+ the attacker, and (e) the attacker has at least some level of
+ pre-existing control over files on the client (this might be
+ accomplished by having the server respond to a client web request
+ with a specially crafted file). Credit: Hendrik Weimer.
+ CVE-2006-1629.
+
+ The fix is to disallow "setenv" to be pushed to clients from
+ the server, and to add a new directive "setenv-safe" which is
+ pushable from the server, but which appends "OPENVPN_" to the
+ name of each remotely set environmental variable.
+
+ * "topology subnet" fix for FreeBSD (Benoit Bourdin).
+
+ * PKCS11 fixes (Alon Bar-Lev). For full description:
+ svn log -r990 http://svn.openvpn.net/projects/openvpn/branches/BETA21
+
+ * When deleting routes under Linux, use the route metric
+ as a differentiator to ensure that the route teardown
+ process only deletes the identical route which was originally
+ added via the "route" directive (Roy Marples).
+
+ * Fix the t_cltsrv.sh file in FreeBSD 4 jails
+ (Matthias Andree, Dirk Meyer, Vasil Dimov).
+
+ * Extended tun device configure code to support ethernet
+ bridging on NetBSD (Emmanuel Kasper).
+
+ 2006.02.19 -- Version 2.1-beta11
+
+ * Fixed --port-share bug that caused premature closing
+ of proxied sessions.
+
+ 2006.02.17 -- Version 2.1-beta10
+
+ * Fixed --port-share breakage introduced in 2.1-beta9.
+
+ 2006.02.16 -- Version 2.1-beta9
+
+ * Added --port-share option for allowing OpenVPN and HTTPS
+ server to share the same port number.
+ * Added --management-client option to connect as a client
+ to management GUI app rather than be connected to as a
+ server.
+ * Added "bytecount" command to management interface.
+ * --remote-cert-tls fixes (Alon Bar-Lev).
+
+ 2006.01.03 -- Version 2.1-beta8
+
+ * --remap-usr1 will now also remap signals thrown during
+ initialization.
+ * Added --connect-timeout option to control the timeout
+ on TCP client connection attempts (doesn't work on all
+ OSes). This patch also makes OpenVPN signalable during
+ TCP connection attempts.
+ * Fixed bug in acinclude.m4 where capability of compiler
+ to handle zero-length arrays in structs is tested
+ (David Stipp).
+ * Fixed typo in manage.c where inline function declaration
+ was declared without the "static" keyword (David Stipp).
+ * Patch to support --topology subnet on Mac OS X (Mathias Sundman).
+ * Added --auto-proxy directive to auto-detect HTTP or SOCKS
+ proxy settings (currently Windows only).
+ * Removed redundant base64 code.
+ * Better sanity checking of --server and --server-bridge
+ IP pool ranges, so as not to hit the assertion at
+ pool.c:119 (2.0.5).
+ * Fixed bug where --daemon and --management-query-passwords
+ used together would cause OpenVPN to block prior to
+ daemonization.
+ * Fixed client/server race condition which could occur
+ when --auth-retry interact is set and the initially
+ provided auth-user-pass credentials are incorrect,
+ forcing a username/password re-query.
+ * Fixed bug where if --daemon and --management-hold are
+ used together, --user or --group options would be ignored.
+ * --ip-win32 adaptive is now the default.
+ * --ip-win32 netsh (or --ip-win32 adaptive when in netsh
+ mode) can now set DNS/WINS addresses on the TAP-Win32
+ adapter.
+ * Added new option --route-method adaptive (Win32)
+ which tries IP helper API first, then falls back to
+ route.exe.
+ * Made --route-method adaptive the default.
+
+ 2005.11.12 -- Version 2.1-beta7
+
+ * Allow blank passwords to be passed via the management
+ interface.
+ * Fixed bug where "make check" inside a FreeBSD "jail"
+ would never complete (Matthias Andree).
+ * Fixed bug where --server directive in --dev tap mode
+ claimed that it would support subnets of /30 or less
+ but actually would only accept /29 or less.
+ * Extend byte counters to 64 bits (M. van Cuijk).
+ * Fixed bug in Linux get_default_gateway function
+ introduced in 2.0.4, which would cause redirect-gateway
+ on Linux clients to fail.
+ * Moved easy-rsa 2.0 scripts to easy-rsa/2.0 to
+ be compatible with 2.0.x distribution.
+ * Documented --route-nopull.
+ * Documented --ip-win32 adaptive.
+ * Windows build now linked with LZO2.
+ * Allow ca, cert, key, and dh files to be specified
+ inline via XML-like syntax without needing to
+ reference an explicit file.
+ For example:
+ <ca>
+ data here...
+ </ca>
+ * Allow plugin and push directives to have multi-line
+ parameter lists such as:
+ <plugin>
+ my-plugin.so
+ parm1
+ parm2
+ </plugin>
+ * Added connect-retry-max option (Alon Bar-Lev).
+ * Fixed problems where signals thrown during initialization
+ were not returning to a management-hold state.
+ * Added a backtrack-hardened system time algorithm.
+ * Added --remote-cert-ku, --remote-cert-eku, and
+ --remote-cert-tls options for verifying certificate
+ attributes (Alon Bar-Lev).
+ * For Windows, reverted --ip-win32 default back to "dynamic".
+ To use new adaptive mode, set explicitly.
+
+ 2005.11.01 -- Version 2.1-beta6
+
+ * Security fix (merged from 2.0.4) -- Affects non-Windows
+ OpenVPN clients of version 2.0 or higher which connect to
+ a malicious or compromised server. A format string
+ vulnerability in the foreign_option function in options.c
+ could potentially allow a malicious or compromised server
+ to execute arbitrary code on the client. Only
+ non-Windows clients are affected. The vulnerability
+ only exists if (a) the client's TLS negotiation with
+ the server succeeds, (b) the server is malicious or
+ has been compromised such that it is configured to
+ push a maliciously crafted options string to the client,
+ and (c) the client indicates its willingness to accept
+ pushed options from the server by having "pull" or
+ "client" in its configuration file (Credit: Vade79).
+ CVE-2005-3393
+ * Security fix -- (merged from 2.0.4) Potential DoS
+ vulnerability on the server in TCP mode. If the TCP
+ server accept() call returns an error status, the resulting
+ exception handler may attempt to indirect through a NULL
+ pointer, causing a segfault. Affects all OpenVPN 2.0 versions.
+ CVE-2005-3409
+ * Fix attempt of assertion at multi.c:1586 (note that
+ this precise line number will vary across different
+ versions of OpenVPN).
+ * Windows reliability changes:
+ (a) Added code to make sure that the local PATH environmental
+ variable points to the Windows system32 directory.
+ (b) Added new --ip-win32 adaptive mode which tries 'dynamic'
+ and then fails over to 'netsh' if the DHCP negotiation fails.
+ (c) Made --ip-win32 adaptive the default.
+ * More PKCS#11 additions/changes (Alon Bar-Lev).
+ * Added ".PHONY: plugin" to Makefile.am to work around
+ "make dist" issue.
+ * Fixed double fork issue that occurs when --management-hold
+ is used.
+ * Moved TUN/TAP read/write log messages from --verb 8 to 6.
+ * Warn when multiple clients having the same common name or
+ username usurp each other when --duplicate-cn is not used.
+ * Modified Windows and Linux versions of get_default_gateway
+ to return the route with the smallest metric
+ if multiple 0.0.0.0/0.0.0.0 entries are present.
+ * Added ">NEED-OK" alert and "needok" command to management
+ interface to provide a general interface for sending
+ alerts to the end-user. Used by the PKCS#11 code
+ to send Token Insertion Requests to the user.
+ * Added actual remote address used to the ">STATE" alert
+ in the management interface (Rolf Fokkens).
+
+ 2005.10.17 -- Version 2.1-beta4
+
+ * Fixed bug introduced in 2.1-beta3 where management
+ socket bind would fail.
+ * --capath fix in ssl.c (Zhuang Yuyao).
+ * Added ".PHONY: plugin" to Makefile.am, reverted
+ location of "plugin" directory (thanks to
+ Matthias Andree for figuring this out).
+
+ 2005.10.16 -- Version 2.1-beta3
+
+ * Added PKCS#11 support (Alon Bar-Lev).
+ * Enable the use of --ca together with --pkcs12. If --ca is
+ used at the same time as --pkcs12, the CA certificate is loaded
+ from the file specified by --ca regardless if the pkcs12 file
+ contains a CA cert or not (Mathias Sundman).
+ * Merged --capath patch (Thomas Noel).
+ * Merged --multihome patch.
+ * Added --bind option for TCP client connections (Ewan Bhamrah
+ Harley).
+ * Moved "plugin" directory to "plugins" to deal with strange
+ automake problem that ended up being also fixable with
+ ".PHONY: plugin" in Makefile.am.
+
+ 2005.10.13 -- Version 2.1-beta2
+
+ * Made --sndbuf and --rcvbuf pushable.
+
+ 2005.10.01 -- Version 2.1-beta1
+
+ * Made LZO setting pushable.
+ * Renamed sample-keys/tmp-ca.crt to ca.crt.
+ * Fixed bug where remove_iroutes_from_push_route_list
+ was missing routes if those routes had
+ an implied netmask (by omission) of 255.255.255.255.
+ * Merged with 2.0.3-rc1
+ * easy-rsa/2.0 moved to easy-rsa
+ * old easy-rsa moved to easy-rsa/1.0
+ ```
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9