OpenVPN is an open source VPN daemon http://community.openvpn.net
  • C 94.2%
  • Shell 2.1%
  • M4 1.5%
  • CMake 1.1%
  • Makefile 0.8%
  • Other 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Ralf Lici 95e4fd0f90 tls: reject incoming reneg request if primary key is not fully valid
Incoming P_CONTROL_SOFT_RESET_V1 can arrive while the active key is not
yet fully valid for renegotiation. This includes the window where we are
still waiting for auth_deferred_expire (derived from handshake/reneg
timing), as well as cases where deferred or mid-session auth later
leaves the key non-authenticated even though state is S_GENERATED_KEYS.

This patch keeps read_control_auth as the first gate, then rejects the
incoming renegotiation requests unless the primary key is KS_AUTH_TRUE
and auth_deferred_expire has passed.

The rejected request is not counted as a TLS error, since soft TLS
errors trigger an instance restart in TCP mode.

Change-Id: I704c560fa23c03237d0f8adc30908a617265a5a1
Signed-off-by: Ralf Lici <ralf@mandelbit.com>
Acked-by: Arne Schwabe <arne-openvpn@rfc2549.org>
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1478
Message-Id: <20261110115827.1649-1-gert@greenie.muc.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg41068.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
2026-11-12 18:51:12 +01:00
.github GHA: Maintenance update September 2026 2026-09-22 18:21:20 +02:00
contrib Fix pkgcs11 vcpkg port installing debug files on release builds 2026-04-28 15:54:16 +02:00
debug build: standard directory layout 2012-03-22 22:07:08 +01:00
dev-tools Provide minimal netlink defines for cppcheck on FreeBSD and macOS 2026-11-05 20:44:18 +01:00
distro dns-scripts: Fix dnssec values in comments and Copyright statement format 2026-04-30 15:19:34 +02:00
doc Adjust ACC_MAX_MSG_LEN, fix ACC in p2p mode and improve documentation 2026-11-12 17:26:12 +01:00
include win: Fix nrpt_dnssec flag handling 2026-04-05 16:28:20 +02:00
m4 configure: Add --enable-code-coverage 2026-10-16 17:06:22 +02:00
sample sample-keys: add tls-crypt-v2 keys and revoked cert 2026-11-03 16:51:07 +01:00
src tls: reject incoming reneg request if primary key is not fully valid 2026-11-12 18:51:12 +01:00
tests Adjust ACC_MAX_MSG_LEN, fix ACC in p2p mode and improve documentation 2026-11-12 17:26:12 +01:00
.clang-format clang-format: Enable InsertNewlineAtEOF 2026-10-15 16:54:59 +02:00
.git-blame-ignore-revs Add clang-format reformat commit to .git-blame-ignore-revs 2025-08-05 17:07:05 +02:00
.gitattributes cleanup: add .gitattributes to control eol style explicitly 2012-04-26 20:54:26 +02:00
.gitignore configure: Add --enable-code-coverage 2026-10-16 17:06:22 +02:00
.mailmap Update .mailmap to unify and clean up odd names and e-mail addresses 2016-10-18 13:46:04 +02:00
.pre-commit-config.yaml Update the clang-format reference version to 21.1.8 2026-02-10 16:29:04 +01:00
.svncommitters Added mapping files from SVN commit ID to more descriptive commit IDs. 2010-10-21 11:31:26 +02:00
AUTHORS This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
ChangeLog start release/2.8 development cycle 2026-02-13 13:11:33 +01:00
Changes.md Remove replay-persist 2026-11-12 17:21:31 +01:00
CMakeLists.txt Implement sending/receiving app custom control protocol messages 2026-11-03 13:21:07 +01:00
CMakePresets.json Add building/testing with msbuild and the clang compiler 2024-12-27 12:30:55 +01:00
CODE_CHECKLIST.md Start a new document CODE_CHECKLIST 2026-08-17 18:57:11 +02:00
compat.m4 Update GPL header in all source files to current recommended version 2025-08-03 16:55:47 +02:00
config.h.cmake.in Remove replay-persist 2026-11-12 17:21:31 +01:00
configure.ac Remove replay-persist 2026-11-12 17:21:31 +01:00
CONTRIBUTING.rst CONTRIBUTING: Update outdated/obsolete information 2025-10-13 18:10:25 +02:00
COPYING Update Copyright statements to 2026 2026-01-08 10:59:57 +01:00
COPYRIGHT.GPL Update text of GPL to latest version from FSF 2025-08-03 16:43:58 +02:00
forked-test-driver forked-test-driver: Show test output always 2024-04-02 17:20:48 +02:00
INSTALL Remove support for --secret 2026-11-12 17:05:32 +01:00
lcovrc configure: Add --enable-code-coverage 2026-10-16 17:06:22 +02:00
ltrc.inc cmake: symlink whole build dir not just .json file 2024-01-17 15:01:54 +01:00
Makefile.am configure: Add --enable-code-coverage 2026-10-16 17:06:22 +02:00
NEWS This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
PORTS Update Copyright statements to 2026 2026-01-08 10:59:57 +01:00
README Fix copyright line in README 2026-04-21 08:17:48 +02:00
README.awslc Add compatibility to build OpenVPN with AWS-LC. 2025-01-29 17:11:19 +01:00
README.cmake.md README.cmake.md: Document minimum required CMake version for --preset 2024-02-01 20:26:45 +01:00
README.dco.md README.dco: update Linux instructions 2025-07-16 16:16:35 +02:00
README.ec Implement tls-groups option to specify eliptic curves/groups 2020-07-21 22:33:58 +02:00
README.mbedtls Remove Mbed TLS 3 compatibility 2026-10-31 13:42:16 +01:00
README.wolfssl Add a section about wolfSSL GPLv3 and point out missing TLS PRF support 2025-12-04 14:59:08 +01:00
renovate.json renovate: Fix typo in regex manager 2026-06-10 19:08:52 +02:00
version.m4 start release/2.8 development cycle 2026-02-13 13:11:33 +01:00

OpenVPN -- A Secure tunneling daemon

Copyright (C) 2002-2026 OpenVPN 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.

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

To get the latest release of OpenVPN, go to:

	https://openvpn.net/community-downloads/

To Build and Install,

	tar -zxf openvpn-<version>.tar.gz
	cd openvpn-<version>
	./configure
	make
	make install

or see the file INSTALL for more info.

For information on how to build OpenVPN on/for Windows with MinGW
or MSVC see README.cmake.md.

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

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

To report an issue, see
  https://github.com/OpenVPN/openvpn/issues/new

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

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

Other Files & Directories:

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

* sample/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/sample-keys/

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

* sample/sample-config-files/

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

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

Note that easy-rsa and tap-windows are now maintained in their own subprojects.
Their source code is available here:

  https://github.com/OpenVPN/easy-rsa
  https://github.com/OpenVPN/tap-windows6

Community-provided Windows installers (MSI) and Debian packages are built from

  https://github.com/OpenVPN/openvpn-build

See the INSTALL file for usage information.