From a9e6119972ea3fa61d830fc0fcd8e029c2aedd20 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 14 Aug 2018 19:12:53 +0100 Subject: [PATCH] openssl: Update to 1.1.0i and 1.0.2p MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Changes between 1.1.0h and 1.1.0i [14 Aug 2018] *) Client DoS due to large DH parameter During key agreement in a TLS handshake using a DH(E) based ciphersuite a malicious server can send a very large prime value to the client. This will cause the client to spend an unreasonably long period of time generating a key for this prime resulting in a hang until the client has finished. This could be exploited in a Denial Of Service attack. This issue was reported to OpenSSL on 5th June 2018 by Guido Vranken (CVE-2018-0732) [Guido Vranken] *) Cache timing vulnerability in RSA Key Generation The OpenSSL RSA Key generation algorithm has been shown to be vulnerable to a cache timing side channel attack. An attacker with sufficient access to mount cache timing attacks during the RSA key generation process could recover the private key. This issue was reported to OpenSSL on 4th April 2018 by Alejandro Cabrera Aldaya, Billy Brumley, Cesar Pereida Garcia and Luis Manuel Alvarez Tapia. (CVE-2018-0737) [Billy Brumley] *) Make EVP_PKEY_asn1_new() a bit stricter about its input. A NULL pem_str parameter is no longer accepted, as it leads to a corrupt table. NULL pem_str is reserved for alias entries only. [Richard Levitte] *) Revert blinding in ECDSA sign and instead make problematic addition length-invariant. Switch even to fixed-length Montgomery multiplication. [Andy Polyakov] *) Change generating and checking of primes so that the error rate of not being prime depends on the intended use based on the size of the input. For larger primes this will result in more rounds of Miller-Rabin. The maximal error rate for primes with more than 1080 bits is lowered to 2^-128. [Kurt Roeckx, Annie Yousar] *) Increase the number of Miller-Rabin rounds for DSA key generating to 64. [Kurt Roeckx] *) Add blinding to ECDSA and DSA signatures to protect against side channel attacks discovered by Keegan Ryan (NCC Group). [Matt Caswell] *) When unlocking a pass phrase protected PEM file or PKCS#8 container, we now allow empty (zero character) pass phrases. [Richard Levitte] *) Certificate time validation (X509_cmp_time) enforces stricter compliance with RFC 5280. Fractional seconds and timezone offsets are no longer allowed. [Emilia Käsper] *) Fixed a text canonicalisation bug in CMS Where a CMS detached signature is used with text content the text goes through a canonicalisation process first prior to signing or verifying a signature. This process strips trailing space at the end of lines, converts line terminators to CRLF and removes additional trailing line terminators at the end of a file. A bug in the canonicalisation process meant that some characters, such as form-feed, were incorrectly treated as whitespace and removed. This is contrary to the specification (RFC5485). This fix could mean that detached text data signed with an earlier version of OpenSSL 1.1.0 may fail to verify using the fixed version, or text data signed with a fixed OpenSSL may fail to verify with an earlier version of OpenSSL 1.1.0. A workaround is to only verify the canonicalised text data and use the "-binary" flag (for the "cms" command line application) or set the SMIME_BINARY/PKCS7_BINARY/CMS_BINARY flags (if using CMS_verify()). [Matt Caswell] Changes between 1.0.2o and 1.0.2p [14 Aug 2018] *) Client DoS due to large DH parameter During key agreement in a TLS handshake using a DH(E) based ciphersuite a malicious server can send a very large prime value to the client. This will cause the client to spend an unreasonably long period of time generating a key for this prime resulting in a hang until the client has finished. This could be exploited in a Denial Of Service attack. This issue was reported to OpenSSL on 5th June 2018 by Guido Vranken (CVE-2018-0732) [Guido Vranken] *) Cache timing vulnerability in RSA Key Generation The OpenSSL RSA Key generation algorithm has been shown to be vulnerable to a cache timing side channel attack. An attacker with sufficient access to mount cache timing attacks during the RSA key generation process could recover the private key. This issue was reported to OpenSSL on 4th April 2018 by Alejandro Cabrera Aldaya, Billy Brumley, Cesar Pereida Garcia and Luis Manuel Alvarez Tapia. (CVE-2018-0737) [Billy Brumley] *) Make EVP_PKEY_asn1_new() a bit stricter about its input. A NULL pem_str parameter is no longer accepted, as it leads to a corrupt table. NULL pem_str is reserved for alias entries only. [Richard Levitte] *) Revert blinding in ECDSA sign and instead make problematic addition length-invariant. Switch even to fixed-length Montgomery multiplication. [Andy Polyakov] *) Change generating and checking of primes so that the error rate of not being prime depends on the intended use based on the size of the input. For larger primes this will result in more rounds of Miller-Rabin. The maximal error rate for primes with more than 1080 bits is lowered to 2^-128. [Kurt Roeckx, Annie Yousar] *) Increase the number of Miller-Rabin rounds for DSA key generating to 64. [Kurt Roeckx] *) Add blinding to ECDSA and DSA signatures to protect against side channel attacks discovered by Keegan Ryan (NCC Group). [Matt Caswell] *) When unlocking a pass phrase protected PEM file or PKCS#8 container, we now allow empty (zero character) pass phrases. [Richard Levitte] *) Certificate time validation (X509_cmp_time) enforces stricter compliance with RFC 5280. Fractional seconds and timezone offsets are no longer allowed. [Emilia Käsper] Signed-off-by: Michael Tremer --- config/rootfiles/common/openssl | 76 +++++++++++++++++++++++++++++++++ lfs/openssl | 4 +- lfs/openssl-compat | 4 +- 3 files changed, 80 insertions(+), 4 deletions(-) diff --git a/config/rootfiles/common/openssl b/config/rootfiles/common/openssl index dd20f9fab8..8b26c4b429 100644 --- a/config/rootfiles/common/openssl +++ b/config/rootfiles/common/openssl @@ -1285,13 +1285,17 @@ usr/lib/libssl.so.1.1 #usr/share/doc/openssl/html/man3/EVP_EncryptInit_ex.html #usr/share/doc/openssl/html/man3/EVP_EncryptUpdate.html #usr/share/doc/openssl/html/man3/EVP_MD_CTX_block_size.html +#usr/share/doc/openssl/html/man3/EVP_MD_CTX_clear_flags.html #usr/share/doc/openssl/html/man3/EVP_MD_CTX_copy.html #usr/share/doc/openssl/html/man3/EVP_MD_CTX_copy_ex.html #usr/share/doc/openssl/html/man3/EVP_MD_CTX_free.html #usr/share/doc/openssl/html/man3/EVP_MD_CTX_md.html +#usr/share/doc/openssl/html/man3/EVP_MD_CTX_md_data.html #usr/share/doc/openssl/html/man3/EVP_MD_CTX_new.html #usr/share/doc/openssl/html/man3/EVP_MD_CTX_reset.html +#usr/share/doc/openssl/html/man3/EVP_MD_CTX_set_flags.html #usr/share/doc/openssl/html/man3/EVP_MD_CTX_size.html +#usr/share/doc/openssl/html/man3/EVP_MD_CTX_test_flags.html #usr/share/doc/openssl/html/man3/EVP_MD_CTX_type.html #usr/share/doc/openssl/html/man3/EVP_MD_block_size.html #usr/share/doc/openssl/html/man3/EVP_MD_meth_dup.html @@ -1628,6 +1632,7 @@ usr/lib/libssl.so.1.1 #usr/share/doc/openssl/html/man3/OCSP_SINGLERESP_free.html #usr/share/doc/openssl/html/man3/OCSP_SINGLERESP_new.html #usr/share/doc/openssl/html/man3/OCSP_basic_add1_nonce.html +#usr/share/doc/openssl/html/man3/OCSP_basic_verify.html #usr/share/doc/openssl/html/man3/OCSP_cert_id_new.html #usr/share/doc/openssl/html/man3/OCSP_cert_to_id.html #usr/share/doc/openssl/html/man3/OCSP_check_nonce.html @@ -2364,6 +2369,7 @@ usr/lib/libssl.so.1.1 #usr/share/doc/openssl/html/man3/SSL_get_selected_srtp_profile.html #usr/share/doc/openssl/html/man3/SSL_get_server_random.html #usr/share/doc/openssl/html/man3/SSL_get_session.html +#usr/share/doc/openssl/html/man3/SSL_get_shared_ciphers.html #usr/share/doc/openssl/html/man3/SSL_get_shared_curve.html #usr/share/doc/openssl/html/man3/SSL_get_shared_sigalgs.html #usr/share/doc/openssl/html/man3/SSL_get_shutdown.html @@ -2651,8 +2657,36 @@ usr/lib/libssl.so.1.1 #usr/share/doc/openssl/html/man3/X509_EXTENSION_set_critical.html #usr/share/doc/openssl/html/man3/X509_EXTENSION_set_data.html #usr/share/doc/openssl/html/man3/X509_EXTENSION_set_object.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_ctrl_fn.html #usr/share/doc/openssl/html/man3/X509_LOOKUP_file.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_get_by_alias_fn.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_get_by_fingerprint_fn.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_get_by_issuer_serial_fn.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_get_by_subject_fn.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_get_method_data.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_get_store.html #usr/share/doc/openssl/html/man3/X509_LOOKUP_hash_dir.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_meth_free.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_meth_get_ctrl.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_meth_get_free.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_meth_get_get_by_alias.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_meth_get_get_by_fingerprint.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_meth_get_get_by_issuer_serial.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_meth_get_get_by_subject.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_meth_get_init.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_meth_get_new_item.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_meth_get_shutdown.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_meth_new.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_meth_set_ctrl.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_meth_set_free.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_meth_set_get_by_alias.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_meth_set_get_by_fingerprint.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_meth_set_get_by_issuer_serial.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_meth_set_get_by_subject.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_meth_set_init.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_meth_set_new_item.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_meth_set_shutdown.html +#usr/share/doc/openssl/html/man3/X509_LOOKUP_set_method_data.html #usr/share/doc/openssl/html/man3/X509_NAME_ENTRY_create_by_NID.html #usr/share/doc/openssl/html/man3/X509_NAME_ENTRY_create_by_OBJ.html #usr/share/doc/openssl/html/man3/X509_NAME_ENTRY_create_by_txt.html @@ -2683,6 +2717,8 @@ usr/lib/libssl.so.1.1 #usr/share/doc/openssl/html/man3/X509_NAME_print.html #usr/share/doc/openssl/html/man3/X509_NAME_print_ex.html #usr/share/doc/openssl/html/man3/X509_NAME_print_ex_fp.html +#usr/share/doc/openssl/html/man3/X509_OBJECT_set1_X509.html +#usr/share/doc/openssl/html/man3/X509_OBJECT_set1_X509_CRL.html #usr/share/doc/openssl/html/man3/X509_PUBKEY_free.html #usr/share/doc/openssl/html/man3/X509_PUBKEY_get.html #usr/share/doc/openssl/html/man3/X509_PUBKEY_get0.html @@ -2828,6 +2864,7 @@ usr/lib/libssl.so.1.1 #usr/share/doc/openssl/html/man3/X509_VERIFY_PARAM_get_auth_level.html #usr/share/doc/openssl/html/man3/X509_VERIFY_PARAM_get_depth.html #usr/share/doc/openssl/html/man3/X509_VERIFY_PARAM_get_flags.html +#usr/share/doc/openssl/html/man3/X509_VERIFY_PARAM_get_hostflags.html #usr/share/doc/openssl/html/man3/X509_VERIFY_PARAM_get_inh_flags.html #usr/share/doc/openssl/html/man3/X509_VERIFY_PARAM_get_time.html #usr/share/doc/openssl/html/man3/X509_VERIFY_PARAM_set1_email.html @@ -2852,6 +2889,7 @@ usr/lib/libssl.so.1.1 #usr/share/doc/openssl/html/man3/X509_check_ip.html #usr/share/doc/openssl/html/man3/X509_check_ip_asc.html #usr/share/doc/openssl/html/man3/X509_check_issued.html +#usr/share/doc/openssl/html/man3/X509_cmp_time.html #usr/share/doc/openssl/html/man3/X509_delete_ext.html #usr/share/doc/openssl/html/man3/X509_digest.html #usr/share/doc/openssl/html/man3/X509_dup.html @@ -4531,13 +4569,17 @@ usr/lib/libssl.so.1.1 #usr/share/man/man3/EVP_EncryptInit_ex.3 #usr/share/man/man3/EVP_EncryptUpdate.3 #usr/share/man/man3/EVP_MD_CTX_block_size.3 +#usr/share/man/man3/EVP_MD_CTX_clear_flags.3 #usr/share/man/man3/EVP_MD_CTX_copy.3 #usr/share/man/man3/EVP_MD_CTX_copy_ex.3 #usr/share/man/man3/EVP_MD_CTX_free.3 #usr/share/man/man3/EVP_MD_CTX_md.3 +#usr/share/man/man3/EVP_MD_CTX_md_data.3 #usr/share/man/man3/EVP_MD_CTX_new.3 #usr/share/man/man3/EVP_MD_CTX_reset.3 +#usr/share/man/man3/EVP_MD_CTX_set_flags.3 #usr/share/man/man3/EVP_MD_CTX_size.3 +#usr/share/man/man3/EVP_MD_CTX_test_flags.3 #usr/share/man/man3/EVP_MD_CTX_type.3 #usr/share/man/man3/EVP_MD_block_size.3 #usr/share/man/man3/EVP_MD_meth_dup.3 @@ -4874,6 +4916,7 @@ usr/lib/libssl.so.1.1 #usr/share/man/man3/OCSP_SINGLERESP_free.3 #usr/share/man/man3/OCSP_SINGLERESP_new.3 #usr/share/man/man3/OCSP_basic_add1_nonce.3 +#usr/share/man/man3/OCSP_basic_verify.3 #usr/share/man/man3/OCSP_cert_id_new.3 #usr/share/man/man3/OCSP_cert_to_id.3 #usr/share/man/man3/OCSP_check_nonce.3 @@ -5610,6 +5653,7 @@ usr/lib/libssl.so.1.1 #usr/share/man/man3/SSL_get_selected_srtp_profile.3 #usr/share/man/man3/SSL_get_server_random.3 #usr/share/man/man3/SSL_get_session.3 +#usr/share/man/man3/SSL_get_shared_ciphers.3 #usr/share/man/man3/SSL_get_shared_curve.3 #usr/share/man/man3/SSL_get_shared_sigalgs.3 #usr/share/man/man3/SSL_get_shutdown.3 @@ -5897,8 +5941,36 @@ usr/lib/libssl.so.1.1 #usr/share/man/man3/X509_EXTENSION_set_critical.3 #usr/share/man/man3/X509_EXTENSION_set_data.3 #usr/share/man/man3/X509_EXTENSION_set_object.3 +#usr/share/man/man3/X509_LOOKUP_ctrl_fn.3 #usr/share/man/man3/X509_LOOKUP_file.3 +#usr/share/man/man3/X509_LOOKUP_get_by_alias_fn.3 +#usr/share/man/man3/X509_LOOKUP_get_by_fingerprint_fn.3 +#usr/share/man/man3/X509_LOOKUP_get_by_issuer_serial_fn.3 +#usr/share/man/man3/X509_LOOKUP_get_by_subject_fn.3 +#usr/share/man/man3/X509_LOOKUP_get_method_data.3 +#usr/share/man/man3/X509_LOOKUP_get_store.3 #usr/share/man/man3/X509_LOOKUP_hash_dir.3 +#usr/share/man/man3/X509_LOOKUP_meth_free.3 +#usr/share/man/man3/X509_LOOKUP_meth_get_ctrl.3 +#usr/share/man/man3/X509_LOOKUP_meth_get_free.3 +#usr/share/man/man3/X509_LOOKUP_meth_get_get_by_alias.3 +#usr/share/man/man3/X509_LOOKUP_meth_get_get_by_fingerprint.3 +#usr/share/man/man3/X509_LOOKUP_meth_get_get_by_issuer_serial.3 +#usr/share/man/man3/X509_LOOKUP_meth_get_get_by_subject.3 +#usr/share/man/man3/X509_LOOKUP_meth_get_init.3 +#usr/share/man/man3/X509_LOOKUP_meth_get_new_item.3 +#usr/share/man/man3/X509_LOOKUP_meth_get_shutdown.3 +#usr/share/man/man3/X509_LOOKUP_meth_new.3 +#usr/share/man/man3/X509_LOOKUP_meth_set_ctrl.3 +#usr/share/man/man3/X509_LOOKUP_meth_set_free.3 +#usr/share/man/man3/X509_LOOKUP_meth_set_get_by_alias.3 +#usr/share/man/man3/X509_LOOKUP_meth_set_get_by_fingerprint.3 +#usr/share/man/man3/X509_LOOKUP_meth_set_get_by_issuer_serial.3 +#usr/share/man/man3/X509_LOOKUP_meth_set_get_by_subject.3 +#usr/share/man/man3/X509_LOOKUP_meth_set_init.3 +#usr/share/man/man3/X509_LOOKUP_meth_set_new_item.3 +#usr/share/man/man3/X509_LOOKUP_meth_set_shutdown.3 +#usr/share/man/man3/X509_LOOKUP_set_method_data.3 #usr/share/man/man3/X509_NAME_ENTRY_create_by_NID.3 #usr/share/man/man3/X509_NAME_ENTRY_create_by_OBJ.3 #usr/share/man/man3/X509_NAME_ENTRY_create_by_txt.3 @@ -5929,6 +6001,8 @@ usr/lib/libssl.so.1.1 #usr/share/man/man3/X509_NAME_print.3 #usr/share/man/man3/X509_NAME_print_ex.3 #usr/share/man/man3/X509_NAME_print_ex_fp.3 +#usr/share/man/man3/X509_OBJECT_set1_X509.3 +#usr/share/man/man3/X509_OBJECT_set1_X509_CRL.3 #usr/share/man/man3/X509_PUBKEY_free.3 #usr/share/man/man3/X509_PUBKEY_get.3 #usr/share/man/man3/X509_PUBKEY_get0.3 @@ -6074,6 +6148,7 @@ usr/lib/libssl.so.1.1 #usr/share/man/man3/X509_VERIFY_PARAM_get_auth_level.3 #usr/share/man/man3/X509_VERIFY_PARAM_get_depth.3 #usr/share/man/man3/X509_VERIFY_PARAM_get_flags.3 +#usr/share/man/man3/X509_VERIFY_PARAM_get_hostflags.3 #usr/share/man/man3/X509_VERIFY_PARAM_get_inh_flags.3 #usr/share/man/man3/X509_VERIFY_PARAM_get_time.3 #usr/share/man/man3/X509_VERIFY_PARAM_set1_email.3 @@ -6098,6 +6173,7 @@ usr/lib/libssl.so.1.1 #usr/share/man/man3/X509_check_ip.3 #usr/share/man/man3/X509_check_ip_asc.3 #usr/share/man/man3/X509_check_issued.3 +#usr/share/man/man3/X509_cmp_time.3 #usr/share/man/man3/X509_delete_ext.3 #usr/share/man/man3/X509_digest.3 #usr/share/man/man3/X509_dup.3 diff --git a/lfs/openssl b/lfs/openssl index 71f2bc826b..94a08b97db 100644 --- a/lfs/openssl +++ b/lfs/openssl @@ -24,7 +24,7 @@ include Config -VER = 1.1.0h +VER = 1.1.0i THISAPP = openssl-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -87,7 +87,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 5271477e4d93f4ea032b665ef095ff24 +$(DL_FILE)_MD5 = 9495126aafd2659d357ea66a969c3fe1 install : $(TARGET) diff --git a/lfs/openssl-compat b/lfs/openssl-compat index 9e991b4960..d784903ba7 100644 --- a/lfs/openssl-compat +++ b/lfs/openssl-compat @@ -24,7 +24,7 @@ include Config -VER = 1.0.2o +VER = 1.0.2p THISAPP = openssl-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -84,7 +84,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 44279b8557c3247cbe324e2322ecd114 +$(DL_FILE)_MD5 = ac5eb30bf5798aa14b1ae6d0e7da58df install : $(TARGET) -- 2.39.2