Don't display 'latest' symlinks
[openssl-web.git] / news / secadv_20101202.txt
1 OpenSSL Security Advisory [2 December 2010]
2
3 OpenSSL Ciphersuite Downgrade Attack
4 =====================================
5
6 A flaw has been found in the OpenSSL SSL/TLS server code where an old bug
7 workaround allows malicous clients to modify the stored session cache
8 ciphersuite. In some cases the ciphersuite can be downgraded to a weaker one
9 on subsequent connections.
10
11 The OpenSSL security team would like to thank Martin Rex for reporting this
12 issue.
13
14 This vulnerability is tracked as CVE-2010-4180
15
16 OpenSSL JPAKE validation error
17 ===============================
18
19 Sebastian Martini found an error in OpenSSL's J-PAKE implementation
20 which could lead to successful validation by someone with no knowledge
21 of the shared secret. This error is fixed in 1.0.0c. Details of the
22 problem can be found here:
23
24 http://seb.dbzteam.org/crypto/jpake-session-key-retrieval.pdf
25
26 Note that the OpenSSL Team still consider our implementation of J-PAKE
27 to be experimental and is not compiled by default.
28
29 This issue is tracked as CVE-2010-4252 
30
31 Who is affected?
32 =================
33
34 All versions of OpenSSL contain the ciphersuite downgrade vulnerability.
35
36 Any OpenSSL based SSL/TLS server is vulnerable if it uses
37 OpenSSL's internal caching mechanisms and the
38 SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG flag (many applications enable this
39 by using the SSL_OP_ALL option).
40
41 Users of OpenSSL 0.9.8j or later who do not enable weak ciphersuites are
42 still vulnerable but the bug has no security implications as the attacker can
43 only change from one strong ciphersuite to another.
44
45 All users of OpenSSL's experimental J-PAKE implementation are vulnerable
46 to the J-PAKE validation error.
47
48 Recommendations for users of OpenSSL
49 =====================================
50
51 Users of all OpenSSL 0.9.8 releases including 0.9.8p should update
52 to the OpenSSL 0.9.8q release which contains a patch to correct this issue.
53
54 Alternatively do not set the SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG
55 and/or SSL_OP_ALL flags.
56
57 Users of OpenSSL 1.0.0 releases should update to the OpenSSL 1.0.0c release
58 which contains a patch to correct this issue and also contains a corrected
59 version of the CVE-2010-3864 vulnerability fix.
60
61 If upgrading is not immediately possible, the relevant source code patch
62 provided in this advisory should be applied.
63
64 Any user of OpenSSL's J-PAKE implementaion (which is not compiled in by 
65 default) should upgrade to OpenSSL 1.0.0c.
66
67 Patch
68 =====
69
70 Index: ssl/s3_clnt.c
71 ===================================================================
72 RCS file: /v/openssl/cvs/openssl/ssl/s3_clnt.c,v
73 retrieving revision 1.129.2.16
74 diff -u -r1.129.2.16 s3_clnt.c
75 --- ssl/s3_clnt.c       10 Oct 2010 12:33:10 -0000      1.129.2.16
76 +++ ssl/s3_clnt.c       24 Nov 2010 14:32:37 -0000
77 @@ -866,8 +866,11 @@
78                 s->session->cipher_id = s->session->cipher->id;
79         if (s->hit && (s->session->cipher_id != c->id))
80                 {
81 +/* Workaround is now obsolete */
82 +#if 0
83                 if (!(s->options &
84                         SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG))
85 +#endif
86                         {
87                         al=SSL_AD_ILLEGAL_PARAMETER;
88                         SSLerr(SSL_F_SSL3_GET_SERVER_HELLO,SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED);
89 Index: ssl/s3_srvr.c
90 ===================================================================
91 RCS file: /v/openssl/cvs/openssl/ssl/s3_srvr.c,v
92 retrieving revision 1.171.2.22
93 diff -u -r1.171.2.22 s3_srvr.c
94 --- ssl/s3_srvr.c       14 Nov 2010 13:50:29 -0000      1.171.2.22
95 +++ ssl/s3_srvr.c       24 Nov 2010 14:34:28 -0000
96 @@ -985,6 +985,10 @@
97                                 break;
98                                 }
99                         }
100 +/* Disabled because it can be used in a ciphersuite downgrade
101 + * attack: CVE-2010-4180.
102 + */
103 +#if 0
104                 if (j == 0 && (s->options & SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG) && (sk_SSL_CIPHER_num(ciphers) == 1))
105                         {
106                         /* Special case as client bug workaround: the previously used cipher may
107 @@ -999,6 +1003,7 @@
108                                 j = 1;
109                                 }
110                         }
111 +#endif
112                 if (j == 0)
113                         {
114                         /* we need to have the cipher in the cipher
115
116
117
118 References
119 ===========
120
121 URL for this Security Advisory:
122 http://www.openssl.org/news/secadv_20101202.txt
123
124 URL for updated CVS-2010-3864 Security Advisory:
125 http://www.openssl.org/news/secadv_20101116-2.txt
126
127