Fixes #8377.

Signed-off-by: Matthias Schulz <mschulz@hilscher.com>
diff --git a/library/x509_csr.c b/library/x509_csr.c
index 0b2bb6f..bd45c56 100644
--- a/library/x509_csr.c
+++ b/library/x509_csr.c
@@ -78,6 +78,7 @@
     int ret;
     size_t len;
     unsigned char *end_ext_data;
+    int critical;
     while (*p < end) {
         mbedtls_x509_buf extn_oid = { 0, 0, NULL };
         int ext_type = 0;
@@ -100,6 +101,9 @@
         extn_oid.p = *p;
         *p += extn_oid.len;
 
+        /* Get and ignore optional critical flag */
+        (void)mbedtls_asn1_get_bool(p, end_ext_data, &critical);
+
         /* Data should be octet string type */
         if ((ret = mbedtls_asn1_get_tag(p, end_ext_data, &len,
                                         MBEDTLS_ASN1_OCTET_STRING)) != 0) {