summaryrefslogtreecommitdiffstats
path: root/ssl/statem
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2023-06-09 09:09:06 +0100
committerMatt Caswell <matt@openssl.org>2023-06-23 14:14:59 +0100
commit7a949ae5f1799a6629cf6deb44ae0f38455a73dd (patch)
tree5abc3503b24d1e13db588f0e6508f11c65050c4c /ssl/statem
parenta02571a02473889d13fe7996e0d2d052328f3199 (diff)
Don't ask for an invalid group in an HRR
If the client sends us a group in a key_share that is in our supported_groups list but is otherwise not suitable (e.g. not compatible with TLSv1.3) we reject it. We should not ask for that same group again in a subsequent HRR. Fixes #21157 Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Todd Short <todd.short@me.com> (Merged from https://github.com/openssl/openssl/pull/21163)
Diffstat (limited to 'ssl/statem')
-rw-r--r--ssl/statem/extensions.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/ssl/statem/extensions.c b/ssl/statem/extensions.c
index 3bb7c4af26..0a64ca2246 100644
--- a/ssl/statem/extensions.c
+++ b/ssl/statem/extensions.c
@@ -1449,7 +1449,11 @@ static int final_key_share(SSL_CONNECTION *s, unsigned int context, int sent)
group_id = pgroups[i];
if (check_in_list(s, group_id, clntgroups, clnt_num_groups,
- 1))
+ 1)
+ && tls_group_allowed(s, group_id,
+ SSL_SECOP_CURVE_SUPPORTED)
+ && tls_valid_group(s, group_id, TLS1_3_VERSION,
+ TLS1_3_VERSION, 0, NULL))
break;
}