summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/libssl/ssl_tlsext.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/lib/libssl/ssl_tlsext.c b/src/lib/libssl/ssl_tlsext.c
index 90734457e5..6d8f51833b 100644
--- a/src/lib/libssl/ssl_tlsext.c
+++ b/src/lib/libssl/ssl_tlsext.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_tlsext.c,v 1.147 2024/04/02 22:50:54 sthen Exp $ */ 1/* $OpenBSD: ssl_tlsext.c,v 1.148 2024/04/04 08:02:21 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2016, 2017, 2019 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2016, 2017, 2019 Joel Sing <jsing@openbsd.org>
4 * Copyright (c) 2017 Doug Hogan <doug@openbsd.org> 4 * Copyright (c) 2017 Doug Hogan <doug@openbsd.org>
@@ -325,14 +325,17 @@ tlsext_supportedgroups_client_process(SSL *s, uint16_t msg_type, CBS *cbs,
325 int *alert) 325 int *alert)
326{ 326{
327 /* 327 /*
328 * Servers should not send this extension per the RFC. 328 * This extension is only allowed in TLSv1.3 encrypted extensions.
329 * 329 * It is not permitted in a ServerHello in any version of TLS.
330 * However, certain F5 BIG-IP systems incorrectly send it. This bug is 330 */
331 * from at least 2014 but as of 2017, there are still large sites with 331 if (msg_type != SSL_TLSEXT_MSG_EE)
332 * this unpatched in production. As a result, we need to currently skip 332 return 0;
333 * over the extension and ignore its content: 333
334 * 334 /*
335 * https://support.f5.com/csp/article/K37345003 335 * RFC 8446, section 4.2.7: TLSv1.3 servers can send this extension but
336 * clients must not act on it during the handshake. This allows servers
337 * to advertise their preferences for subsequent handshakes. We ignore
338 * this complication.
336 */ 339 */
337 if (!CBS_skip(cbs, CBS_len(cbs))) { 340 if (!CBS_skip(cbs, CBS_len(cbs))) {
338 *alert = SSL_AD_INTERNAL_ERROR; 341 *alert = SSL_AD_INTERNAL_ERROR;