aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGert Doering2017-06-19 19:44:00 +0200
committerGert Doering2017-06-20 13:03:56 +0200
commitdb34435863eab6845d395848e472d940b053e436 (patch)
treefacbeecd767a4d34e4de12df3107dc5933c35750
parented28cde3d8bf3f1459b2f42f0e27d64801009f92 (diff)
downloadopenvpn-db34435863eab6845d395848e472d940b053e436.zip
openvpn-db34435863eab6845d395848e472d940b053e436.tar.gz
Preparing for release v2.4.3 (ChangeLog, version.m4, Changes.rst)v2.4.3
(cherry picking commit ce05fb508a1841883df2067517c9a4706734db60 for updates and cleanup of Changes.rst) General cleanup help, UTF8 fixes, whitespace and quoting fixes for ChangeLog and Changes.rst provided by David Sommerseth <davids@openvpn.net>
-rw-r--r--ChangeLog62
-rw-r--r--Changes.rst96
-rw-r--r--version.m44
3 files changed, 141 insertions, 21 deletions
diff --git a/ChangeLog b/ChangeLog
index 00c2e2f..537beaa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,68 @@
OpenVPN Change Log
Copyright (C) 2002-2017 OpenVPN Technologies, Inc. <sales@openvpn.net>
+2017.06.21 -- Version 2.4.3
+Antonio Quartulli (1):
+ Ignore auth-nocache for auth-user-pass if auth-token is pushed
+
+David Sommerseth (3):
+ crypto: Enable SHA256 fingerprint checking in --verify-hash
+ copyright: Update GPLv2 license texts
+ auth-token with auth-nocache fix broke --disable-crypto builds
+
+Emmanuel Deloget (8):
+ OpenSSL: don't use direct access to the internal of X509
+ OpenSSL: don't use direct access to the internal of EVP_PKEY
+ OpenSSL: don't use direct access to the internal of RSA
+ OpenSSL: don't use direct access to the internal of DSA
+ OpenSSL: force meth->name as non-const when we free() it
+ OpenSSL: don't use direct access to the internal of EVP_MD_CTX
+ OpenSSL: don't use direct access to the internal of EVP_CIPHER_CTX
+ OpenSSL: don't use direct access to the internal of HMAC_CTX
+
+Gert Doering (6):
+ Fix NCP behaviour on TLS reconnect.
+ Remove erroneous limitation on max number of args for --plugin
+ Fix edge case with clients failing to set up cipher on empty PUSH_REPLY.
+ Fix potential 1-byte overread in TCP option parsing.
+ Fix remotely-triggerable ASSERT() on malformed IPv6 packet.
+ Update Changes.rst with relevant info for 2.4.3 release.
+
+Guido Vranken (6):
+ refactor my_strupr
+ Fix 2 memory leaks in proxy authentication routine
+ Fix memory leak in add_option() for option 'connection'
+ Ensure option array p[] is always NULL-terminated
+ Fix a null-pointer dereference in establish_http_proxy_passthru()
+ Prevent two kinds of stack buffer OOB reads and a crash for invalid input data
+
+Jérémie Courrèges-Anglas (2):
+ Fix an unaligned access on OpenBSD/sparc64
+ Missing include for socket-flags TCP_NODELAY on OpenBSD
+
+Matthias Andree (1):
+ Make openvpn-plugin.h self-contained again.
+
+Selva Nair (1):
+ Pass correct buffer size to GetModuleFileNameW()
+
+Steffan Karger (11):
+ Log the negotiated (NCP) cipher
+ Avoid a 1 byte overcopy in x509_get_subject (ssl_verify_openssl.c)
+ Skip tls-crypt unit tests if required crypto mode not supported
+ openssl: fix overflow check for long --tls-cipher option
+ Add a DSA test key/cert pair to sample-keys
+ Fix mbedtls fingerprint calculation
+ mbedtls: fix --x509-track post-authentication remote DoS (CVE-2017-7522)
+ mbedtls: require C-string compatible types for --x509-username-field
+ Fix remote-triggerable memory leaks (CVE-2017-7521)
+ Restrict --x509-alt-username extension types
+ Fix potential double-free in --x509-alt-username (CVE-2017-7521)
+
+Steven McDonald (1):
+ Fix gateway detection with OpenBSD routing domains
+
+
2017.05.11 -- Version 2.4.2
David Sommerseth (5):
auth-token: Ensure tokens are always wiped on de-auth
diff --git a/Changes.rst b/Changes.rst
index 726e591..454dde4 100644
--- a/Changes.rst
+++ b/Changes.rst
@@ -177,6 +177,7 @@ Deprecated features
- ``--no-iv`` is deprecated in 2.4 and will be removed in 2.5.
+
User-visible Changes
--------------------
- When using ciphers with cipher blocks less than 128-bits,
@@ -303,43 +304,82 @@ Maintainer-visible changes
use -std=gnu99 in CFLAGS. This is known to be needed when doing
i386/i686 builds on RHEL5.
+
+
Version 2.4.3
=============
+New features
+------------
+- Support building with OpenSSL 1.1 now (in addition to older versions)
+
+- On Win10, set low interface metric for TAP adapter when block-outside-dns
+ is in use, to make Windows prefer the TAP adapter for DNS queries
+ (avoiding large delays)
+
+
Security
--------
-- CVE-2017-7522: Fix --x509-track post-authentication remote DoS
+- CVE-2017-7522: Fix ``--x509-track`` post-authentication remote DoS
A client could crash a 2.4+ mbedtls server, if that server uses the
- --x509-track option and the client has a correct, signed and unrevoked
+ ``--x509-track`` option and the client has a correct, signed and unrevoked
certificate that contains an embedded NUL in the certificate subject.
Discovered and reported to the OpenVPN security team by Guido Vranken.
+
- CVE-2017-7521: Fix post-authentication remote-triggerable memory leaks
A client could cause a server to leak a few bytes each time it connects to the
server. That can eventuall cause the server to run out of memory, and thereby
causing the server process to terminate. Discovered and reported to the
OpenVPN security team by Guido Vranken. (OpenSSL builds only.)
+
- CVE-2017-7521: Fix a potential post-authentication remote code execution
- attack on servers that use the ``--x509-alt-username`` option with an X.509
+ attack on servers that use the ``--x509-username-field`` option with an X.509
extension field (option argument prefixed with ``ext:``). A client that can
cause a server to run out-of-memory (see above) might be able to cause the
server to double free, which in turn might lead to remote code execution.
Discovered and reported to the OpenVPN security team by Guido Vranken.
(OpenSSL builds only.)
+- CVE-2017-7520: Pre-authentication remote crash/information disclosure for
+ clients. If clients use a HTTP proxy with NTLM authentication (i.e.
+ ``--http-proxy <server> <port> [<authfile>|'auto'|'auto-nct'] ntlm2``),
+ a man-in-the-middle attacker between the client and the proxy can cause
+ the client to crash or disclose at most 96 bytes of stack memory. The
+ disclosed stack memory is likely to contain the proxy password. If the
+ proxy password is not reused, this is unlikely to compromise the security
+ of the OpenVPN tunnel itself. Clients who do not use the ``--http-proxy``
+ option with ntlm2 authentication are not affected.
+
+- CVE-2017-7508: Fix remotely-triggerable ASSERT() on malformed IPv6 packet.
+ This can be used to remotely shutdown an openvpn server or client, if
+ IPv6 and ``--mssfix`` are enabled and the IPv6 networks used inside the VPN
+ are known.
+
+- Fix null-pointer dereference when talking to a malicious http proxy
+ that returns a malformed Proxy-Authenticate: headers for digest auth.
+
+- Fix overflow check for long ``--tls-cipher`` option
+
+- Windows: Pass correct buffer size to ``GetModuleFileNameW()``
+ (OSTIF/Quarkslabs audit, finding 5.6)
+
+
User-visible Changes
--------------------
- ``--verify-hash`` can now take an optional flag which changes the hashing
algorithm. It can be either SHA1 or SHA256. The default if not provided is
SHA1 to preserve backwards compatibility with existing configurations.
-- Restrict the supported --x509-alt-username extension fields to subjectAltName
+
+- Restrict the supported ``--x509-username-field`` extension fields to subjectAltName
and issuerAltName. Other extensions probably didn't work anyway, and would
cause OpenVPN to crash when a client connects.
+
Bugfixes
--------
- Fix fingerprint calculation in mbed TLS builds. This means that mbed TLS users
of OpenVPN 2.4.0, 2.4.1 and 2.4.2 that rely on the values of the
- ``tls_digest_*`` env vars, or that use `--verify-hash` will have to change
+ ``tls_digest_*`` env vars, or that use ``--verify-hash`` will have to change
the fingerprint values they check against. The security impact of the
incorrect calculation is very minimal; the last few bytes (max 4, typically
4) are not verified by the fingerprint. We expect no real-world impact,
@@ -347,21 +387,19 @@ Bugfixes
stopped working, and users that didn't will notice that connection setup
fails if they specify correct fingerprints.
+- Fix edge case with NCP when the server sends an empty PUSH_REPLY message
+ back, and the client would not initialize it's data channel crypto layer
+ properly (trac #903)
-Version 2.4.1
-=============
-- ``--remote-cert-ku`` now only requires the certificate to have at least the
- bits set of one of the values in the supplied list, instead of requiring an
- exact match to one of the values in the list.
-- ``--remote-cert-tls`` now only requires that a keyUsage is present in the
- certificate, and leaves the verification of the value up to the crypto
- library, which has more information (i.e. the key exchange method in use)
- to verify that the keyUsage is correct.
-- ``--ns-cert-type`` is deprecated. Use ``--remote-cert-tls`` instead.
- The nsCertType x509 extension is very old, and barely used.
- ``--remote-cert-tls`` uses the far more common keyUsage and extendedKeyUsage
- extension instead. Make sure your certificates carry these to be able to
- use ``--remote-cert-tls``.
+- Fix SIGSEGV on unaligned buffer access on OpenBSD/Sparc64
+
+- Fix TCP_NODELAY on OpenBSD
+
+- Remove erroneous limitation on max number of args for --plugin
+
+- Fix NCP behaviour on TLS reconnect (Server would not send a proper
+ "cipher ..." message back to the client, leading to client and server
+ using different ciphers) (trac #887)
Version 2.4.2
@@ -379,7 +417,27 @@ Security
to hit an ASSERT() and stop the process. If ``--tls-auth`` or ``--tls-crypt``
is used, only attackers that have the ``--tls-auth`` or ``--tls-crypt`` key
can mount an attack. (OSTIF/Quarkslab audit finding 5.1, CVE-2017-7478)
+
- Fix an authenticated remote DoS vulnerability that could be triggered by
causing a packet id roll over. An attack is rather inefficient; a peer
would need to get us to send at least about 196 GB of data.
(OSTIF/Quarkslab audit finding 5.2, CVE-2017-7479)
+
+
+Version 2.4.1
+=============
+- ``--remote-cert-ku`` now only requires the certificate to have at least the
+ bits set of one of the values in the supplied list, instead of requiring an
+ exact match to one of the values in the list.
+
+- ``--remote-cert-tls`` now only requires that a keyUsage is present in the
+ certificate, and leaves the verification of the value up to the crypto
+ library, which has more information (i.e. the key exchange method in use)
+ to verify that the keyUsage is correct.
+
+- ``--ns-cert-type`` is deprecated. Use ``--remote-cert-tls`` instead.
+ The nsCertType x509 extension is very old, and barely used.
+ ``--remote-cert-tls`` uses the far more common keyUsage and extendedKeyUsage
+ extension instead. Make sure your certificates carry these to be able to
+ use ``--remote-cert-tls``.
+
diff --git a/version.m4 b/version.m4
index 73ca1e8..f18193b 100644
--- a/version.m4
+++ b/version.m4
@@ -3,12 +3,12 @@ define([PRODUCT_NAME], [OpenVPN])
define([PRODUCT_TARNAME], [openvpn])
define([PRODUCT_VERSION_MAJOR], [2])
define([PRODUCT_VERSION_MINOR], [4])
-define([PRODUCT_VERSION_PATCH], [.2])
+define([PRODUCT_VERSION_PATCH], [.3])
m4_append([PRODUCT_VERSION], [PRODUCT_VERSION_MAJOR])
m4_append([PRODUCT_VERSION], [PRODUCT_VERSION_MINOR], [[.]])
m4_append([PRODUCT_VERSION], [PRODUCT_VERSION_PATCH], [[]])
define([PRODUCT_BUGREPORT], [openvpn-users@lists.sourceforge.net])
-define([PRODUCT_VERSION_RESOURCE], [2,4,2,0])
+define([PRODUCT_VERSION_RESOURCE], [2,4,3,0])
dnl define the TAP version
define([PRODUCT_TAP_WIN_COMPONENT_ID], [tap0901])
define([PRODUCT_TAP_WIN_MIN_MAJOR], [9])