sync with OpenBSD -current

This commit is contained in:
purplerain 2024-04-04 10:05:09 +00:00
parent d47112308d
commit 69f13bbae9
Signed by: purplerain
GPG key ID: F42C07F07E2E35B7
40 changed files with 422 additions and 153 deletions

View file

@ -1,4 +1,4 @@
/* $OpenBSD: ssl_tlsext.c,v 1.147 2024/04/02 22:50:54 sthen Exp $ */
/* $OpenBSD: ssl_tlsext.c,v 1.148 2024/04/04 08:02:21 tb Exp $ */
/*
* Copyright (c) 2016, 2017, 2019 Joel Sing <jsing@openbsd.org>
* Copyright (c) 2017 Doug Hogan <doug@openbsd.org>
@ -325,14 +325,17 @@ tlsext_supportedgroups_client_process(SSL *s, uint16_t msg_type, CBS *cbs,
int *alert)
{
/*
* Servers should not send this extension per the RFC.
*
* However, certain F5 BIG-IP systems incorrectly send it. This bug is
* from at least 2014 but as of 2017, there are still large sites with
* this unpatched in production. As a result, we need to currently skip
* over the extension and ignore its content:
*
* https://support.f5.com/csp/article/K37345003
* This extension is only allowed in TLSv1.3 encrypted extensions.
* It is not permitted in a ServerHello in any version of TLS.
*/
if (msg_type != SSL_TLSEXT_MSG_EE)
return 0;
/*
* RFC 8446, section 4.2.7: TLSv1.3 servers can send this extension but
* clients must not act on it during the handshake. This allows servers
* to advertise their preferences for subsequent handshakes. We ignore
* this complication.
*/
if (!CBS_skip(cbs, CBS_len(cbs))) {
*alert = SSL_AD_INTERNAL_ERROR;