]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Fix nc_email to check ASN1 strings with NULL byte in the middle
authorNikita Ivanov <nivanov@cloudlinux.com>
Tue, 7 Sep 2021 08:31:17 +0000 (11:31 +0300)
committerPauli <pauli@openssl.org>
Mon, 13 Sep 2021 07:04:13 +0000 (17:04 +1000)
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/16524)

(cherry picked from commit 485d0790ac1a29a0d4e7391d804810d485890376)

crypto/x509v3/v3_ncons.c

index d985aa91dacd39a9663c102062032f263fbab669..60cb4ceaa8f815307d91149223a5a44757cad090 100644 (file)
@@ -602,6 +602,9 @@ static int nc_email(ASN1_IA5STRING *eml, ASN1_IA5STRING *base)
         if (baseat != baseptr) {
             if ((baseat - baseptr) != (emlat - emlptr))
                 return X509_V_ERR_PERMITTED_VIOLATION;
+            if (memchr(baseptr, 0, baseat - baseptr) ||
+                memchr(emlptr, 0, emlat - emlptr))
+                return X509_V_ERR_UNSUPPORTED_NAME_SYNTAX;
             /* Case sensitive match of local part */
             if (strncmp(baseptr, emlptr, emlat - emlptr))
                 return X509_V_ERR_PERMITTED_VIOLATION;