[Pkg-openssl-changes] r756 - in openssl/branches/jessie/debian: . patches

Kurt Roeckx kroeckx at moszumanska.debian.org
Thu Dec 3 17:40:51 UTC 2015


Author: kroeckx
Date: 2015-12-03 17:40:51 +0000 (Thu, 03 Dec 2015)
New Revision: 756

Added:
   openssl/branches/jessie/debian/patches/CVE-2015-3194.patch
   openssl/branches/jessie/debian/patches/CVE-2015-3195.patch
   openssl/branches/jessie/debian/patches/CVE-2015-3196.patch
Modified:
   openssl/branches/jessie/debian/changelog
   openssl/branches/jessie/debian/patches/series
Log:
Fix security issues.


Modified: openssl/branches/jessie/debian/changelog
===================================================================
--- openssl/branches/jessie/debian/changelog	2015-12-03 17:29:08 UTC (rev 755)
+++ openssl/branches/jessie/debian/changelog	2015-12-03 17:40:51 UTC (rev 756)
@@ -1,3 +1,11 @@
+openssl (1.0.1k-3+deb8u2) jessie-security; urgency=medium
+
+  * Fix CVE-2015-3194
+  * Fix CVE-2015-3195
+  * Fix CVE-2015-3196
+
+ -- Kurt Roeckx <kurt at roeckx.be>  Thu, 03 Dec 2015 18:39:46 +0100
+
 openssl (1.0.1k-3+deb8u1) jessie-security; urgency=medium
 
   * Fix CVE-2015-1791

Added: openssl/branches/jessie/debian/patches/CVE-2015-3194.patch
===================================================================
--- openssl/branches/jessie/debian/patches/CVE-2015-3194.patch	                        (rev 0)
+++ openssl/branches/jessie/debian/patches/CVE-2015-3194.patch	2015-12-03 17:40:51 UTC (rev 756)
@@ -0,0 +1,34 @@
+From f81aa391f469c695e56f080dcde70e4bba3fd7be Mon Sep 17 00:00:00 2001
+From: "Dr. Stephen Henson" <steve at openssl.org>
+Date: Fri, 2 Oct 2015 13:10:29 +0100
+Subject: [PATCH 2/2] Add PSS parameter check.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Avoid seg fault by checking mgf1 parameter is not NULL. This can be
+triggered during certificate verification so could be a DoS attack
+against a client or a server enabling client authentication.
+
+Thanks to Loïc Jonas Etienne (Qnective AG) for discovering this bug.
+
+CVE-2015-3194
+
+Reviewed-by: Matt Caswell <matt at openssl.org>
+---
+ crypto/rsa/rsa_ameth.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: openssl-1.0.1k/crypto/rsa/rsa_ameth.c
+===================================================================
+--- openssl-1.0.1k.orig/crypto/rsa/rsa_ameth.c
++++ openssl-1.0.1k/crypto/rsa/rsa_ameth.c
+@@ -287,7 +287,7 @@ static RSA_PSS_PARAMS *rsa_pss_decode(co
+ 		{
+ 		ASN1_TYPE *param = pss->maskGenAlgorithm->parameter;
+ 		if (OBJ_obj2nid(pss->maskGenAlgorithm->algorithm) == NID_mgf1
+-			&& param->type == V_ASN1_SEQUENCE)
++			&& param && param->type == V_ASN1_SEQUENCE)
+ 			{
+ 			p = param->value.sequence->data;
+ 			plen = param->value.sequence->length;

Added: openssl/branches/jessie/debian/patches/CVE-2015-3195.patch
===================================================================
--- openssl/branches/jessie/debian/patches/CVE-2015-3195.patch	                        (rev 0)
+++ openssl/branches/jessie/debian/patches/CVE-2015-3195.patch	2015-12-03 17:40:51 UTC (rev 756)
@@ -0,0 +1,55 @@
+From 7c13530c14867bc09d478b30148884aa16891e15 Mon Sep 17 00:00:00 2001
+From: "Dr. Stephen Henson" <steve at openssl.org>
+Date: Tue, 10 Nov 2015 19:03:07 +0000
+Subject: [PATCH 1/2] Fix leak with ASN.1 combine.
+
+When parsing a combined structure pass a flag to the decode routine
+so on error a pointer to the parent structure is not zeroed as
+this will leak any additional components in the parent.
+
+This can leak memory in any application parsing PKCS#7 or CMS structures.
+
+CVE-2015-3195.
+
+Thanks to Adam Langley (Google/BoringSSL) for discovering this bug using
+libFuzzer.
+
+PR#4131
+
+Reviewed-by: Richard Levitte <levitte at openssl.org>
+---
+ crypto/asn1/tasn_dec.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+Index: openssl-1.0.1k/crypto/asn1/tasn_dec.c
+===================================================================
+--- openssl-1.0.1k.orig/crypto/asn1/tasn_dec.c
++++ openssl-1.0.1k/crypto/asn1/tasn_dec.c
+@@ -169,6 +169,8 @@ int ASN1_item_ex_d2i(ASN1_VALUE **pval,
+ 	int otag;
+ 	int ret = 0;
+ 	ASN1_VALUE **pchptr, *ptmpval;
++        int combine = aclass & ASN1_TFLG_COMBINE;
++        aclass &= ~ASN1_TFLG_COMBINE;
+ 	if (!pval)
+ 		return 0;
+ 	if (aux && aux->asn1_cb)
+@@ -534,7 +536,8 @@ int ASN1_item_ex_d2i(ASN1_VALUE **pval,
+ 	auxerr:
+ 	ASN1err(ASN1_F_ASN1_ITEM_EX_D2I, ASN1_R_AUX_ERROR);
+ 	err:
+-	ASN1_item_ex_free(pval, it);
++        if (combine == 0)
++            ASN1_item_ex_free(pval, it);
+ 	if (errtt)
+ 		ERR_add_error_data(4, "Field=", errtt->field_name,
+ 					", Type=", it->sname);
+@@ -762,7 +765,7 @@ static int asn1_template_noexp_d2i(ASN1_
+ 		{
+ 		/* Nothing special */
+ 		ret = ASN1_item_ex_d2i(val, &p, len, ASN1_ITEM_ptr(tt->item),
+-							-1, 0, opt, ctx);
++                                        -1, tt->flags & ASN1_TFLG_COMBINE, opt, ctx);
+ 		if (!ret)
+ 			{
+ 			ASN1err(ASN1_F_ASN1_TEMPLATE_NOEXP_D2I,

Added: openssl/branches/jessie/debian/patches/CVE-2015-3196.patch
===================================================================
--- openssl/branches/jessie/debian/patches/CVE-2015-3196.patch	                        (rev 0)
+++ openssl/branches/jessie/debian/patches/CVE-2015-3196.patch	2015-12-03 17:40:51 UTC (rev 756)
@@ -0,0 +1,72 @@
+From d6be3124f22870f1888c532523b74ea5d89795eb Mon Sep 17 00:00:00 2001
+From: "Dr. Stephen Henson" <steve at openssl.org>
+Date: Wed, 1 Jul 2015 23:40:03 +0100
+Subject: [PATCH] Fix PSK handling.
+
+The PSK identity hint should be stored in the SSL_SESSION structure
+and not in the parent context (which will overwrite values used
+by other SSL structures with the same SSL_CTX).
+
+Use BUF_strndup when copying identity as it may not be null terminated.
+
+Reviewed-by: Tim Hudson <tjh at openssl.org>
+(cherry picked from commit 3c66a669dfc7b3792f7af0758ea26fe8502ce70c)
+---
+ ssl/s3_clnt.c | 17 +++--------------
+ ssl/s3_srvr.c |  2 +-
+ 2 files changed, 4 insertions(+), 15 deletions(-)
+
+Index: openssl-1.0.1k/ssl/s3_clnt.c
+===================================================================
+--- openssl-1.0.1k.orig/ssl/s3_clnt.c
++++ openssl-1.0.1k/ssl/s3_clnt.c
+@@ -1360,8 +1360,6 @@ int ssl3_get_key_exchange(SSL *s)
+ #ifndef OPENSSL_NO_PSK
+ 	if (alg_k & SSL_kPSK)
+ 		{
+-		char tmp_id_hint[PSK_MAX_IDENTITY_LEN+1];
+-
+ 		param_len = 2;
+ 		if (param_len > n)
+ 			{
+@@ -1390,16 +1388,8 @@ int ssl3_get_key_exchange(SSL *s)
+ 			}
+ 		param_len += i;
+ 
+-		/* If received PSK identity hint contains NULL
+-		 * characters, the hint is truncated from the first
+-		 * NULL. p may not be ending with NULL, so create a
+-		 * NULL-terminated string. */
+-		memcpy(tmp_id_hint, p, i);
+-		memset(tmp_id_hint+i, 0, PSK_MAX_IDENTITY_LEN+1-i);
+-		if (s->ctx->psk_identity_hint != NULL)
+-			OPENSSL_free(s->ctx->psk_identity_hint);
+-		s->ctx->psk_identity_hint = BUF_strdup(tmp_id_hint);
+-		if (s->ctx->psk_identity_hint == NULL)
++                s->session->psk_identity_hint = BUF_strndup((char *)p, i);
++                if (s->session->psk_identity_hint == NULL)
+ 			{
+ 			al=SSL_AD_HANDSHAKE_FAILURE;
+ 			SSLerr(SSL_F_SSL3_GET_KEY_EXCHANGE, ERR_R_MALLOC_FAILURE);
+@@ -3002,7 +2992,7 @@ int ssl3_send_client_key_exchange(SSL *s
+ 				}
+ 
+ 			memset(identity, 0, sizeof(identity));
+-			psk_len = s->psk_client_callback(s, s->ctx->psk_identity_hint,
++                        psk_len = s->psk_client_callback(s, s->session->psk_identity_hint,
+ 				identity, sizeof(identity) - 1,
+ 				psk_or_pre_ms, sizeof(psk_or_pre_ms));
+ 			if (psk_len > PSK_MAX_PSK_LEN)
+Index: openssl-1.0.1k/ssl/s3_srvr.c
+===================================================================
+--- openssl-1.0.1k.orig/ssl/s3_srvr.c
++++ openssl-1.0.1k/ssl/s3_srvr.c
+@@ -2816,7 +2816,7 @@ int ssl3_get_client_key_exchange(SSL *s)
+ 
+ 			if (s->session->psk_identity != NULL)
+ 				OPENSSL_free(s->session->psk_identity);
+-			s->session->psk_identity = BUF_strdup((char *)p);
++                        s->session->psk_identity = BUF_strndup((char *)p, i);
+ 			if (s->session->psk_identity == NULL)
+ 				{
+ 				SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE,

Modified: openssl/branches/jessie/debian/patches/series
===================================================================
--- openssl/branches/jessie/debian/patches/series	2015-12-03 17:29:08 UTC (rev 755)
+++ openssl/branches/jessie/debian/patches/series	2015-12-03 17:40:51 UTC (rev 756)
@@ -35,3 +35,6 @@
 CVE-2015-1790.patch
 CVE-2015-1788.patch
 CVE-2015-4000.patch
+CVE-2015-3194.patch
+CVE-2015-3195.patch
+CVE-2015-3196.patch




More information about the Pkg-openssl-changes mailing list