Module Name:    src
Committed By:   drochner
Date:           Tue Dec  7 09:10:22 UTC 2010

Modified Files:
        src/crypto/external/bsd/openssl/dist/ssl: s3_clnt.c s3_srvr.c

Log Message:
openssl security patch of the day:
Fix a flaw in the OpenSSL SSL/TLS server code where an old bug
workaround allows malicous clients to modify the stored session cache
ciphersuite. In some cases the ciphersuite can be downgraded to a weaker one
on subsequent connections. See
http://www.openssl.org/news/secadv_20101202.txt
(CVE-2010-4180)


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/crypto/external/bsd/openssl/dist/ssl/s3_clnt.c
cvs rdiff -u -r1.5 -r1.6 src/crypto/external/bsd/openssl/dist/ssl/s3_srvr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/crypto/external/bsd/openssl/dist/ssl/s3_clnt.c
diff -u src/crypto/external/bsd/openssl/dist/ssl/s3_clnt.c:1.2 src/crypto/external/bsd/openssl/dist/ssl/s3_clnt.c:1.3
--- src/crypto/external/bsd/openssl/dist/ssl/s3_clnt.c:1.2	Tue Aug 10 11:01:00 2010
+++ src/crypto/external/bsd/openssl/dist/ssl/s3_clnt.c	Tue Dec  7 09:10:21 2010
@@ -870,8 +870,11 @@
 		s->session->cipher_id = s->session->cipher->id;
 	if (s->hit && (s->session->cipher_id != c->id))
 		{
+/* Workaround is now obsolete */
+#if 0
 		if (!(s->options &
 			SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG))
+#endif
 			{
 			al=SSL_AD_ILLEGAL_PARAMETER;
 			SSLerr(SSL_F_SSL3_GET_SERVER_HELLO,SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED);

Index: src/crypto/external/bsd/openssl/dist/ssl/s3_srvr.c
diff -u src/crypto/external/bsd/openssl/dist/ssl/s3_srvr.c:1.5 src/crypto/external/bsd/openssl/dist/ssl/s3_srvr.c:1.6
--- src/crypto/external/bsd/openssl/dist/ssl/s3_srvr.c:1.5	Fri Apr  9 04:34:13 2010
+++ src/crypto/external/bsd/openssl/dist/ssl/s3_srvr.c	Tue Dec  7 09:10:21 2010
@@ -975,6 +975,10 @@
 				break;
 				}
 			}
+/* Disabled because it can be used in a ciphersuite downgrade
+ * attack: CVE-2010-4180.
+ */
+#if 0
 		if (j == 0 && (s->options & SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG) && (sk_SSL_CIPHER_num(ciphers) == 1))
 			{
 			/* Special case as client bug workaround: the previously used cipher may
@@ -989,6 +993,7 @@
 				j = 1;
 				}
 			}
+#endif
 		if (j == 0)
 			{
 			/* we need to have the cipher in the cipher

Reply via email to