OpenSSL Security Advisory [11 October 2005] Potential SSL 2.0 Rollback (CAN-2005-2969) ========================================== CONTENTS - Vulnerability - Recommendations - Acknowledgement - References Vulnerability ------------- A vulnerability has been found in all previously released versions of OpenSSL (all versions up to 0.9.7h and 0.9.8a). Versions 0.9.7h and 0.9.8a have been released to address the issue. The vulnerability potentially affects applications that use the SSL/TLS server implementation provided by OpenSSL. Such applications are affected if they use the option SSL_OP_MSIE_SSLV2_RSA_PADDING. This option is implied by use of SSL_OP_ALL, which is intended to work around various bugs in third-party software that might prevent interoperability. The SSL_OP_MSIE_SSLV2_RSA_PADDING option disables a verification step in the SSL 2.0 server supposed to prevent active protocol-version rollback attacks. With this verification step disabled, an attacker acting as a "man in the middle" can force a client and a server to negotiate the SSL 2.0 protocol even if these parties both support SSL 3.0 or TLS 1.0. The SSL 2.0 protocol is known to have severe cryptographic weaknesses and is supported as a fallback only. Applications using neither SSL_OP_MSIE_SSLV2_RSA_PADDING nor SSL_OP_ALL are not affected. Also, applications that disable use of SSL 2.0 are not affected. The Common Vulnerabilities and Exposures project (cve.mitre.org) has assigned the name CAN-2005-2969 to this issue. Recommendations --------------- There are multiple ways to avoid this vulnerability. Any one of the following measures is sufficient. 1. Disable SSL 2.0 in the OpenSSL-based application. The vulnerability occurs only if the old protocol version SSL 2.0 is enabled both in an OpenSSL server and in any of the clients (OpenSSL-based or not) connecting to it. Thus, if you have disabled SSL 2.0, the vulnerability does not apply to you. Generally, it is strongly recommended to disable the SSL 2.0 protocol because of its known weaknesses. 2. Upgrade the OpenSSL server software. The vulnerability is resolved in the following versions of OpenSSL: - in the 0.9.7 branch, version 0.9.7h (or later); - in the 0.9.8 branch, version 0.9.8a (or later). OpenSSL 0.9.8a and OpenSSL 0.9.7h are available for download via HTTP and FTP from the following master locations (you can find the various FTP mirrors under https://www.openssl.org/source/mirror.html): o https://www.openssl.org/source/ o ftp://ftp.openssl.org/source/ The distribution file names are: o openssl-0.9.8a.tar.gz MD5 checksum: 1d16c727c10185e4d694f87f5e424ee1 SHA1 checksum: 2aaba0f728179370fb3e86b43209205bc6c06a3a o openssl-0.9.7h.tar.gz MD5 checksum: 8dc90a113eb8925795071fbe52b2932c SHA1 checksum: 9fe535fce89af967b29c4727dedd25f2b4cc2f0d The checksums were calculated using the following commands: openssl md5 openssl-0.9*.tar.gz openssl sha1 openssl-0.9*.tar.gz If this version upgrade is not an option at the present time, alternatively the following patch may be applied to the OpenSSL source code to resolve the problem. The patch is compatible with the 0.9.6, 0.9.7, and 0.9.8 branches of OpenSSL. o https://www.openssl.org/news/patch-CAN-2005-2969.txt Whether you choose to upgrade to a new version or to apply the patch, make sure to recompile any applications statically linked to OpenSSL libraries if these applications use the OpenSSL SSL/TLS server implementation. Acknowledgement --------------- The OpenSSL team thank Yutaka Oiwa of the Research Center for Information Security, National Institute of Advanced Industrial Science and Technology (AIST), Japan, for alerting us about this problem. References ---------- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-2969 URL for this Security Advisory: https://www.openssl.org/news/secadv_20051011.txt