diff options
Diffstat (limited to 'external/openssl/CVE-2014-3470.patch')
-rw-r--r-- | external/openssl/CVE-2014-3470.patch | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/external/openssl/CVE-2014-3470.patch b/external/openssl/CVE-2014-3470.patch new file mode 100644 index 000000000000..da123eef3822 --- /dev/null +++ b/external/openssl/CVE-2014-3470.patch @@ -0,0 +1,26 @@ +commit 4ad43d511f6cf064c66eb4bfd0fb0919b5dd8a86 +Author: Dr. Stephen Henson <steve@openssl.org> +Date: Thu May 29 15:00:05 2014 +0100 + + Fix CVE-2014-3470 + + Check session_cert is not NULL before dereferencing it. + +diff --git a/a/ssl/s3_clnt.c b/b/ssl/s3_clnt.c +index d35376d..4324f8d 100644 +--- a/a/ssl/s3_clnt.c ++++ b/b/ssl/s3_clnt.c +@@ -2511,6 +2511,13 @@ int ssl3_send_client_key_exchange(SSL *s) + int ecdh_clnt_cert = 0; + int field_size = 0; + ++ if (s->session->sess_cert == NULL) ++ { ++ ssl3_send_alert(s,SSL3_AL_FATAL,SSL_AD_UNEXPECTED_MESSAGE); ++ SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE,SSL_R_UNEXPECTED_MESSAGE); ++ goto err; ++ } ++ + /* Did we send out the client's + * ECDH share for use in premaster + * computation as part of client certificate? |