]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Check for excess data in CertificateVerify
authorViktor Dukhovni <openssl-users@dukhovni.org>
Wed, 28 Aug 2024 10:36:09 +0000 (20:36 +1000)
committerTomas Mraz <tomas@openssl.org>
Thu, 29 Aug 2024 17:32:00 +0000 (19:32 +0200)
As reported by Alicja Kario, we ignored excess bytes after the
signature payload in TLS CertificateVerify Messages.  These
should not be present.

Fixes: #25298
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25302)

ssl/statem/statem_lib.c

index 8932ac44ca8acad2e07355ed52a9fafc341365a0..d52e2a73844aa702a2330e4b659c12749adb099d 100644 (file)
@@ -516,6 +516,10 @@ MSG_PROCESS_RETURN tls_process_cert_verify(SSL_CONNECTION *s, PACKET *pkt)
         SSLfatal(s, SSL_AD_DECODE_ERROR, SSL_R_LENGTH_MISMATCH);
         goto err;
     }
+    if (PACKET_remaining(pkt) != 0) {
+        SSLfatal(s, SSL_AD_DECODE_ERROR, SSL_R_LENGTH_MISMATCH);
+        goto err;
+    }
 
     if (!get_cert_verify_tbs_data(s, tls13tbs, &hdata, &hdatalen)) {
         /* SSLfatal() already called */