From 062934f8993a51e74c7864a68e36ada776bedb49 Mon Sep 17 00:00:00 2001 From: Bernard Spil Date: Tue, 28 May 2019 19:52:07 +0000 Subject: [PATCH] security/openssl111: Security hardening update to 1.1.1c MFH: 2019Q2 --- security/openssl111/Makefile | 3 +- security/openssl111/distinfo | 6 +- security/openssl111/files/patch-CVE-2019-1543 | 66 ------------------- security/openssl111/pkg-plist | 3 + 4 files changed, 7 insertions(+), 71 deletions(-) delete mode 100644 security/openssl111/files/patch-CVE-2019-1543 diff --git a/security/openssl111/Makefile b/security/openssl111/Makefile index 8ce33ea1ffcd..6912188e17a1 100644 --- a/security/openssl111/Makefile +++ b/security/openssl111/Makefile @@ -2,8 +2,7 @@ # $FreeBSD$ PORTNAME= openssl -PORTVERSION= 1.1.1b -PORTREVISION= 1 +PORTVERSION= 1.1.1c CATEGORIES= security devel MASTER_SITES= https://www.openssl.org/source/ \ ftp://ftp.cert.dfn.de/pub/tools/net/openssl/source/ diff --git a/security/openssl111/distinfo b/security/openssl111/distinfo index 48293b4b4bd1..24a7b25412f4 100644 --- a/security/openssl111/distinfo +++ b/security/openssl111/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1551251313 -SHA256 (openssl-1.1.1b.tar.gz) = 5c557b023230413dfb0756f3137a13e6d726838ccd1430888ad15bfb2b43ea4b -SIZE (openssl-1.1.1b.tar.gz) = 8213737 +TIMESTAMP = 1559070548 +SHA256 (openssl-1.1.1c.tar.gz) = f6fb3079ad15076154eda9413fed42877d668e7069d9b87396d0804fdb3f4c90 +SIZE (openssl-1.1.1c.tar.gz) = 8864262 diff --git a/security/openssl111/files/patch-CVE-2019-1543 b/security/openssl111/files/patch-CVE-2019-1543 deleted file mode 100644 index 243ec34a55ad..000000000000 --- a/security/openssl111/files/patch-CVE-2019-1543 +++ /dev/null @@ -1,66 +0,0 @@ -From f426625b6ae9a7831010750490a5f0ad689c5ba3 Mon Sep 17 00:00:00 2001 -From: Matt Caswell -Date: Tue, 5 Mar 2019 14:39:15 +0000 -Subject: [PATCH] Prevent over long nonces in ChaCha20-Poly1305 - -ChaCha20-Poly1305 is an AEAD cipher, and requires a unique nonce input for -every encryption operation. RFC 7539 specifies that the nonce value (IV) -should be 96 bits (12 bytes). OpenSSL allows a variable nonce length and -front pads the nonce with 0 bytes if it is less than 12 bytes. However it -also incorrectly allows a nonce to be set of up to 16 bytes. In this case -only the last 12 bytes are significant and any additional leading bytes are -ignored. - -It is a requirement of using this cipher that nonce values are unique. -Messages encrypted using a reused nonce value are susceptible to serious -confidentiality and integrity attacks. If an application changes the -default nonce length to be longer than 12 bytes and then makes a change to -the leading bytes of the nonce expecting the new value to be a new unique -nonce then such an application could inadvertently encrypt messages with a -reused nonce. - -Additionally the ignored bytes in a long nonce are not covered by the -integrity guarantee of this cipher. Any application that relies on the -integrity of these ignored leading bytes of a long nonce may be further -affected. - -Any OpenSSL internal use of this cipher, including in SSL/TLS, is safe -because no such use sets such a long nonce value. However user -applications that use this cipher directly and set a non-default nonce -length to be longer than 12 bytes may be vulnerable. - -CVE-2019-1543 - -Fixes #8345 - -Reviewed-by: Paul Dale -Reviewed-by: Richard Levitte -(Merged from https://github.com/openssl/openssl/pull/8406) - -(cherry picked from commit 2a3d0ee9d59156c48973592331404471aca886d6) ---- - crypto/evp/e_chacha20_poly1305.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/crypto/evp/e_chacha20_poly1305.c b/crypto/evp/e_chacha20_poly1305.c -index c1917bb86a6..d3e2c622a1b 100644 ---- crypto/evp/e_chacha20_poly1305.c.orig -+++ crypto/evp/e_chacha20_poly1305.c -@@ -30,6 +30,8 @@ typedef struct { - - #define data(ctx) ((EVP_CHACHA_KEY *)(ctx)->cipher_data) - -+#define CHACHA20_POLY1305_MAX_IVLEN 12 -+ - static int chacha_init_key(EVP_CIPHER_CTX *ctx, - const unsigned char user_key[CHACHA_KEY_SIZE], - const unsigned char iv[CHACHA_CTR_SIZE], int enc) -@@ -533,7 +535,7 @@ static int chacha20_poly1305_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, - return 1; - - case EVP_CTRL_AEAD_SET_IVLEN: -- if (arg <= 0 || arg > CHACHA_CTR_SIZE) -+ if (arg <= 0 || arg > CHACHA20_POLY1305_MAX_IVLEN) - return 0; - actx->nonce_len = arg; - return 1; diff --git a/security/openssl111/pkg-plist b/security/openssl111/pkg-plist index 649c94bfc356..d0d0739083de 100644 --- a/security/openssl111/pkg-plist +++ b/security/openssl111/pkg-plist @@ -1546,6 +1546,7 @@ man/man1/x509.1.gz %%MAN3%%man/man3/EVP_PKEY_get0_EC_KEY.3.gz %%MAN3%%man/man3/EVP_PKEY_get0_RSA.3.gz %%MAN3%%man/man3/EVP_PKEY_get0_asn1.3.gz +%%MAN3%%man/man3/EVP_PKEY_get0_engine.3.gz %%MAN3%%man/man3/EVP_PKEY_get0_hmac.3.gz %%MAN3%%man/man3/EVP_PKEY_get0_poly1305.3.gz %%MAN3%%man/man3/EVP_PKEY_get0_siphash.3.gz @@ -2455,11 +2456,13 @@ man/man1/x509.1.gz %%MAN3%%man/man3/RSA_new.3.gz %%MAN3%%man/man3/RSA_new_method.3.gz %%MAN3%%man/man3/RSA_padding_add_PKCS1_OAEP.3.gz +%%MAN3%%man/man3/RSA_padding_add_PKCS1_OAEP_mgf1.3.gz %%MAN3%%man/man3/RSA_padding_add_PKCS1_type_1.3.gz %%MAN3%%man/man3/RSA_padding_add_PKCS1_type_2.3.gz %%MAN3%%man/man3/RSA_padding_add_SSLv23.3.gz %%MAN3%%man/man3/RSA_padding_add_none.3.gz %%MAN3%%man/man3/RSA_padding_check_PKCS1_OAEP.3.gz +%%MAN3%%man/man3/RSA_padding_check_PKCS1_OAEP_mgf1.3.gz %%MAN3%%man/man3/RSA_padding_check_PKCS1_type_1.3.gz %%MAN3%%man/man3/RSA_padding_check_PKCS1_type_2.3.gz %%MAN3%%man/man3/RSA_padding_check_SSLv23.3.gz