0
0
mirror of https://github.com/OpenVPN/openvpn.git synced 2024-09-19 19:42:30 +02:00
OpenVPN is an open source VPN daemon
Go to file
Steffan Karger a9f5c744d6
Fix bounds check in read_key()
The bounds check in read_key() was performed after using the value, instead
of before.  If 'key-method 1' is used, this allowed an attacker to send a
malformed packet to trigger a stack buffer overflow.

Fix this by moving the input validation to before the writes.

Note that 'key-method 1' has been replaced by 'key method 2' as the default
in OpenVPN 2.0 (released on 2005-04-17), and explicitly deprecated in 2.4
and marked for removal in 2.5.  This should limit the amount of users
impacted by this issue.

CVE: 2017-12166
Signed-off-by: Steffan Karger <steffan.karger@fox-it.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
Acked-by: David Sommerseth <davids@openvpn.net>
Message-Id: <80690690-67ac-3320-1891-9fecedc6a1fa@fox-it.com>
URL: https://www.mail-archive.com/search?l=mid&q=80690690-67ac-3320-1891-9fecedc6a1fa@fox-it.com
Signed-off-by: David Sommerseth <davids@openvpn.net>
(cherry picked from commit fce3437529)
2017-09-22 01:31:06 +02:00
contrib Remove hardcoded path to resolvconf 2010-11-14 23:03:20 +01:00
debug Change to doval valgrind script. The openvpn command parameter is now 2009-10-25 15:44:28 +00:00
easy-rsa Fixes to easy-rsa/2.0 2011-07-01 10:31:42 +02:00
images Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
install-win32 Made domake-win builds to use easy-rsa/2.0/openssl-1.0.0.cnf 2011-07-01 10:31:42 +02:00
management Added the ability for the server to provide a custom reason string 2009-09-29 23:10:14 +00:00
msvc Change all CRLF linefeeds to LF linefeeds 2011-04-14 16:38:45 +02:00
plugin Fix issues with some older GCC compilers 2011-05-10 13:24:51 +02:00
sample-config-files bash->bourne script cleanup 2010-10-21 11:33:42 +02:00
sample-keys Update sample-keys 2017-06-13 08:51:15 +02:00
sample-scripts Fix line continuation in chkconfig init script description. 2011-03-01 10:16:01 +01:00
service-win32 Improve the mysprintf() issue in openvpnserv.c 2011-04-21 20:53:38 +02:00
suse This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
tap-win32 add missing break between "case IPv4" and "case IPv6", leading to the 2011-11-10 20:26:26 +01:00
win Backported pkcs11-related parts of 7a8d707237 to 2.2 branch 2011-12-14 11:27:20 +01:00
.mailmap Added mapping files from SVN commit ID to more descriptive commit IDs. 2010-10-21 11:31:26 +02:00
.svncommitters Added mapping files from SVN commit ID to more descriptive commit IDs. 2010-10-21 11:31:26 +02:00
.svnignore Updated MSVC build scripts to Visual Studio 2008: 2010-03-31 06:38:21 +00:00
acinclude.m4 Windows cross-compile cleanup 2011-03-24 21:58:25 +01:00
AUTHORS This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
base64.c Fixes to prevent compile breakage when --disable-crypto is used. 2010-11-16 09:10:39 +00:00
base64.h Make base64.h have the same conditional compilation expression as 2010-10-24 09:17:24 +00:00
basic.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
buffer.c Add a simple comment regarding openvpn_snprintf() is duplicated 2011-04-21 21:05:36 +02:00
buffer.h Use constant time memcmp when comparing HMACs in openvpn_decrypt. 2014-11-29 14:57:11 +01:00
ChangeLog Preparing for v2.2.3 release (ChangeLog, version.m4). 2014-11-30 19:04:44 +01:00
circ_list.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
common.h Revamped the script-security warning logging (version 2) 2010-10-21 21:26:42 +02:00
configure_h.awk Add comile time information/settings from ./configure to --version 2010-10-21 21:18:17 +02:00
configure_log.awk Fix dependency checking for configure.h (v2) 2010-10-21 21:21:05 +02:00
configure.ac Windows cross-compile cleanup 2011-03-24 21:58:25 +01:00
COPYING Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
COPYRIGHT.GPL This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
crypto.c Fix bounds check in read_key() 2017-09-22 01:31:06 +02:00
crypto.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
cryptoapi.c Fix compiler warnings about not used dummy() functions 2010-11-18 18:54:49 +01:00
cryptoapi.h This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
dhcp.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
dhcp.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
doclean Minor change to doclean script: 2010-04-17 02:23:50 +00:00
domake-win Updated Windows build scripts to package openssl-0.9.8k, 2009-05-13 13:36:23 +00:00
doval Change to doval valgrind script. The openvpn command parameter is now 2009-10-25 15:44:28 +00:00
dovalns Updated version to 2.1_rc7e. 2008-06-11 08:45:09 +00:00
errlevel.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
error.c Open log files as text files on Windows 2011-03-24 19:50:00 +01:00
error.h Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
event.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
event.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
fdmisc.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
fdmisc.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
forward-inline.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
forward.c Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
forward.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
fragment.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
fragment.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
gremlin.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
gremlin.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
helper.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
helper.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
httpdigest.c Change all CRLF linefeeds to LF linefeeds 2011-04-14 16:38:45 +02:00
httpdigest.h Change all CRLF linefeeds to LF linefeeds 2011-04-14 16:38:45 +02:00
ieproxy.c Fix compiler warnings about not used dummy() functions 2010-11-18 18:54:49 +01:00
ieproxy.h Removed spurious executable propset from 2006-06-26 01:35:18 +00:00
init.c Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
init.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
INSTALL Removed Win2k from supported platforms list in INSTALL and win/openvpn.nsi 2011-04-14 21:17:54 +02:00
INSTALL-win32.txt Updated INSTALL-win32.txt 2011-03-21 15:15:22 +01:00
integer.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
interval.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
interval.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
list.c Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
list.h Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
lladdr.c Completely revamped the system for calling external programs and scripts: 2008-07-26 07:27:03 +00:00
lladdr.h Added --lladdr option to specify the link layer (MAC) address 2006-04-13 21:09:04 +00:00
lzo.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
lzo.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
Makefile.am Fixes to Makefile.am 2011-03-23 13:22:11 +01:00
manage.c Implemented a key/value auth channel from client to server. 2010-06-01 07:12:27 +00:00
manage.h Implemented a key/value auth channel from client to server. 2010-06-01 07:12:27 +00:00
mbuf.c Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
mbuf.h Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
memcmp.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
memdbg.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
misc.c Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
misc.h Merge branch 'svn-BETA21' into beta2.2 2010-11-13 00:48:28 +01:00
mroute.c Only warn about non-tackled IPv6 packets once 2011-12-13 21:16:25 +01:00
mroute.h Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
mss.c Fix potential 1-byte overread in TCP option parsing. 2017-06-18 22:04:30 +02:00
mss.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
mtcp.c Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
mtcp.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
mtu.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
mtu.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
mudp.c Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
mudp.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
multi.c Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
multi.h Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
NEWS This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
ntlm.c Prevent two kinds of stack buffer OOB reads and a crash for invalid input data 2017-06-19 21:13:09 +02:00
ntlm.h This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
occ-inline.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
occ.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
occ.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
openvpn-plugin.h Fix errors in openvpn-plugin.h documentation 2010-10-21 11:40:36 +02:00
openvpn.8 Remove support for Linux 2.2 configuration fallback 2011-06-15 12:00:57 +02:00
openvpn.c Implemented http-proxy-override and http-proxy-fallback directives to make it 2010-05-24 22:51:16 +00:00
openvpn.h Fix client crash on double PUSH_REPLY. 2014-11-30 18:35:35 +01:00
openvpn.spec.in Fixed some breakage in openvpn.spec (which is required to build an 2009-12-11 23:44:34 +00:00
options.c Fix spurious ignoring of pushed config options (trac#349). 2014-11-30 18:52:41 +01:00
options.h Fix spurious ignoring of pushed config options (trac#349). 2014-11-30 18:52:41 +01:00
otime.c Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
otime.h Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
packet_id.c Drop packets instead of assert out if packet id rolls over (CVE-2017-7479) 2017-06-13 09:02:02 +02:00
packet_id.h Drop packets instead of assert out if packet id rolls over (CVE-2017-7479) 2017-06-13 09:02:02 +02:00
perf.c Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
perf.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
pf-inline.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
pf.c Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
pf.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
ping-inline.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
ping.c Exclude ping and control packets from activity 2010-10-21 11:40:36 +02:00
ping.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
pkcs11.c Fix compiling issues with pkcs11 when --disable-management is configured 2011-05-31 23:44:49 +02:00
pkcs11.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
plugin.c Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
plugin.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
pool.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
pool.h Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
PORTS Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
proto.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
proto.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
proxy.c Fix a null-pointer dereference in establish_http_proxy_passthru() 2017-06-16 09:21:00 +02:00
proxy.h Implemented http-proxy-override and http-proxy-fallback directives to make it 2010-05-24 22:51:16 +00:00
ps.c Fix 2.2.0 build failure when management interface disabled 2011-05-19 18:23:02 +02:00
ps.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
push.c Fix spurious ignoring of pushed config options (trac#349). 2014-11-30 18:52:41 +01:00
push.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
pushlist.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
README Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
reliable.c Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
reliable.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
route.c Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
route.h Implemented a key/value auth channel from client to server. 2010-06-01 07:12:27 +00:00
schedule.c Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
schedule.h Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
session_id.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
session_id.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
shaper.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
shaper.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
sig.c Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
sig.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
socket.c Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
socket.h Added --proto-force directive. 2010-09-01 06:04:29 +00:00
socks.c Merge branch 'feat_misc' into beta2.2 2010-11-25 21:28:10 +01:00
socks.h Merge branch 'feat_misc' into beta2.2 2010-11-13 00:55:02 +01:00
sources Incremented version to 2.1_rc7d. 2008-06-04 05:16:44 +00:00
ssl.c Drop too-short control channel packets instead of asserting out. 2014-11-28 20:34:47 +01:00
ssl.h Merge branch 'feat_misc' into beta2.2 2010-11-18 22:17:58 +01:00
status.c Fixed compiler warnings reported on Ubuntu 10.04 2010-10-21 11:40:36 +02:00
status.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
syshead.h Enable TCP_NODELAY configuration on FreeBSD. 2014-11-29 14:59:42 +01:00
t_client.rc-sample full "VPN client connect" test framework for OpenVPN 2010-10-21 11:40:36 +02:00
t_client.sh.in More t_client.sh updates - exit with SKIP when we want to skip 2010-10-21 11:40:36 +02:00
t_cltsrv-down.sh Updated openvpn/t_cltsrv.sh (used by "make check") to conform to new 2008-08-10 18:49:28 +00:00
t_cltsrv.sh Updated openvpn/t_cltsrv.sh (used by "make check") to conform to new 2008-08-10 18:49:28 +00:00
t_lpback.sh svn merge -r 771:780 $SO/trunk/openvpn 2005-11-05 07:42:33 +00:00
tun.c log error message and exit for "win32, tun mode, tap driver version 9.8" 2011-11-23 16:10:21 +01:00
tun.h Added --register-dns option for Windows. 2010-07-16 18:01:11 +00:00
version.m4 Preparing for v2.2.3 release (ChangeLog, version.m4). 2014-11-30 19:04:44 +01:00
win32.c Change the default --tmp-dir path to a more suitable path 2011-04-14 21:10:29 +02:00
win32.h Change the default --tmp-dir path to a more suitable path 2011-04-14 21:10:29 +02:00

OpenVPN -- A Secure tunneling daemon

Copyright (C) 2002-2010 OpenVPN Technologies, Inc. This program is free software;
you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2
as published by the Free Software Foundation.

*************************************************************************

For the latest version of OpenVPN, go to:

	http://openvpn.net/

To Build and Install,

	./configure
	make
	make install

or see the file INSTALL for more info.

*************************************************************************

For detailed information on OpenVPN, including examples, see the man page
  http://openvpn.net/man.html

For a sample VPN configuration, see
  http://openvpn.net/howto.html

For a description of OpenVPN's underlying protocol,
  see the file ssl.h included in the source distribution.

*************************************************************************

Other Files & Directories:

* INSTALL-win32.txt -- installation instructions
  for Windows

* configure.ac -- script to rebuild our configure
  script and makefile.

* openvpn.spec -- RPM Spec file
  To build an OpenVPN binary RPM, use the command:

	rpmbuild -tb [tarball]

  When you install the binary RPM, it will automatically
  install sample-scripts/openvpn.init (see below)

* sample-scripts/openvpn.init

  A sample init script for OpenVPN.  See the file for
  comments and additional information.

* sample-scripts/verify-cn

  A sample perl script which can be used with OpenVPN's
  --tls-verify option to provide a customized authentication
  test on embedded X509 certificate fields.

* sample-keys/

  Sample RSA keys and certificates.  DON'T USE THESE FILES
  FOR ANYTHING OTHER THAN TESTING BECAUSE THEY ARE TOTALLY INSECURE.

* sample-config-files/

  A collection of OpenVPN config files and scripts from
  the HOWTO at http://openvpn.net/howto.html

* easy-rsa/

  A simple guide to RSA key management, scripts included.
  Also see http://openvpn.net/easyrsa.html