untrusted comment: verify with openbsd-78-base.pub RWS3/nvFmk4SWR/5sqTus26e7aNyno/ZTd8HPdsVeu3pPNwu6Bo8HT/my0HX3bayHcMDtMcGccijaKdD9L5dPeUo1gzjwq501QQ= OpenBSD 7.8 errata 004, October 28, 2025: Ensure the group selected by a TLSv1.3 server for a HelloRetryRequest is not one for which the client has already sent a key share. Apply by doing: signify -Vep /etc/signify/openbsd-78-base.pub -x 004_libssl.patch.sig \ -m - | (cd /usr/src && patch -p0) And then rebuild and install libssl cd /usr/src/lib/libssl make obj make make install Index: lib/libssl/ssl_tlsext.c =================================================================== RCS file: /cvs/src/lib/libssl/ssl_tlsext.c,v diff -u -p -r1.156 ssl_tlsext.c --- lib/libssl/ssl_tlsext.c 7 Jun 2025 10:23:21 -0000 1.156 +++ lib/libssl/ssl_tlsext.c 22 Oct 2025 19:51:05 -0000 @@ -1554,6 +1554,7 @@ tlsext_keyshare_server_process(SSL *s, u for (j = 0; j < server_groups_len; j++) { if (server_groups[j] == client_groups[i]) { client_preferred_group = client_groups[i]; + s->s3->hs.tls13.server_group = client_preferred_group; preferred_group_found = 1; break; } Index: lib/libssl/tls13_server.c =================================================================== RCS file: /cvs/src/lib/libssl/tls13_server.c,v diff -u -p -r1.109 tls13_server.c --- lib/libssl/tls13_server.c 22 Jul 2024 14:47:15 -0000 1.109 +++ lib/libssl/tls13_server.c 22 Oct 2025 19:51:05 -0000 @@ -437,8 +437,6 @@ tls13_server_engage_record_protection(st int tls13_server_hello_retry_request_send(struct tls13_ctx *ctx, CBB *cbb) { - int nid; - ctx->hs->tls13.hrr = 1; if (!tls13_synthetic_handshake_message(ctx)) @@ -446,9 +444,7 @@ tls13_server_hello_retry_request_send(st if (ctx->hs->key_share != NULL) return 0; - if (!tls1_get_supported_group(ctx->ssl, &nid)) - return 0; - if (!tls1_ec_nid2group_id(nid, &ctx->hs->tls13.server_group)) + if (ctx->hs->tls13.server_group == 0) return 0; if (!tls13_server_hello_build(ctx, cbb, 1)) @@ -510,8 +506,6 @@ tls13_server_hello_send(struct tls13_ctx return 0; if (!tls13_servername_process(ctx)) return 0; - - ctx->hs->tls13.server_group = 0; if (!tls13_server_hello_build(ctx, cbb, 0)) return 0;