]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Ensure the msg_callback is called on CCS receipt in TLSv1.3
authorMatt Caswell <matt@openssl.org>
Mon, 12 Aug 2024 15:41:56 +0000 (16:41 +0100)
committerTomas Mraz <tomas@openssl.org>
Thu, 15 Aug 2024 18:17:39 +0000 (20:17 +0200)
CCS records are ignore in TLSv1.3. But we should still call the msg_callback
anyway.

Fixes #25166

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25169)

ssl/record/methods/tls_common.c

index 0d92bdce9b7201c7d844196f2a399acdf4ca96c3..0c2414f76e1ff6d89075153b372206e38cf926bf 100644 (file)
@@ -750,8 +750,11 @@ int tls_get_more_records(OSSL_RECORD_LAYER *rl)
         }
         /*
          * CCS messages are ignored in TLSv1.3. We treat it like an empty
-         * handshake record
+         * handshake record - but we still call the msg_callback
          */
+        if (rl->msg_callback != NULL)
+            rl->msg_callback(0, TLS1_3_VERSION, SSL3_RT_CHANGE_CIPHER_SPEC,
+                             thisrr->data, 1, rl->cbarg);
         thisrr->type = SSL3_RT_HANDSHAKE;
         if (++(rl->empty_record_count) > MAX_EMPTY_RECORDS) {
             RLAYERfatal(rl, SSL_AD_UNEXPECTED_MESSAGE,