From: Dr. Stephen Henson Date: Thu, 19 Dec 2013 14:37:39 +0000 (+0000) Subject: Use version in SSL_METHOD not SSL structure. X-Git-Tag: OpenSSL_1_0_1f~9 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=ca989269a2876bae79393bd54c3e72d49975fc75;p=oweals%2Fopenssl.git Use version in SSL_METHOD not SSL structure. When deciding whether to use TLS 1.2 PRF and record hash algorithms use the version number in the corresponding SSL_METHOD structure instead of the SSL structure. The SSL structure version is sometimes inaccurate. Note: OpenSSL 1.0.2 and later effectively do this already. (CVE-2013-6449) --- diff --git a/ssl/s3_lib.c b/ssl/s3_lib.c index bf832bb6cc..c4ef2738d7 100644 --- a/ssl/s3_lib.c +++ b/ssl/s3_lib.c @@ -4286,7 +4286,7 @@ need to go to SSL_ST_ACCEPT. long ssl_get_algorithm2(SSL *s) { long alg2 = s->s3->tmp.new_cipher->algorithm2; - if (TLS1_get_version(s) >= TLS1_2_VERSION && + if (s->method->version == TLS1_2_VERSION && alg2 == (SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF)) return SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256; return alg2;