]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Ensure n = 2 is set in key2 struct in tls_crypt_v2_unwrap_client_key
authorArne Schwabe <arne@rfc2549.org>
Thu, 9 Mar 2023 12:00:31 +0000 (13:00 +0100)
committerGert Doering <gert@greenie.muc.de>
Thu, 9 Mar 2023 18:53:52 +0000 (19:53 +0100)
The ASSERT in xor_key2 assumes that all methods that load a key2 struct
correctly set n=2. However, tls_crypt_v2_unwrap_client_key loads a key
without setting n = 2, triggering the assert.

Github: Closes and reported in OpenVPN/openvpn#272

Change-Id: Iaeb163d83b95818e0b26faf9d25e7737dc8ecb23
Signed-off-by: Arne Schwabe <arne@rfc2549.org>
Acked-by: Antonio Quartulli <a@unstable.cc>
Message-Id: <20230309120031.3780130-1-arne@rfc2549.org>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg26363.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
src/openvpn/tls_crypt.c

index 3b68d186bb4b561c65cfcc0ad26cc3c4f6cdd83f..88b2d6d7cce3f058a759f5d4085f83285f088403 100644 (file)
@@ -532,6 +532,7 @@ tls_crypt_v2_unwrap_client_key(struct key2 *client_key, struct buffer *metadata,
     }
     memcpy(&client_key->keys, BPTR(&plaintext), sizeof(client_key->keys));
     ASSERT(buf_advance(&plaintext, sizeof(client_key->keys)));
+    client_key->n = 2;
 
     if (!buf_copy(metadata, &plaintext))
     {