Date: Tue, 11 Oct 2005 12:02:50 GMT
From: FreeBSD Security Advisories <security-advisories@freebsd.org.>
To: Bugtraq <bugtraq@securityfocus.com.>
Subject: FreeBSD Security Advisory FreeBSD-SA-05:21.openssl
Reply-To: [email protected]
X-Virus-Scanned: antivirus-gw at tyumen.ru
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
FreeBSD-SA-05:21.openssl Security Advisory
The FreeBSD Project
Topic: Potential SSL 2.0 rollback
Category: contrib
Module: openssl
Announced: 2005-10-11
Credits: Yutaka Oiwa
Affects: All FreeBSD releases.
Corrected: 2005-10-11 11:52:46 UTC (RELENG_6, 6.0-STABLE)
2005-10-11 11:53:03 UTC (RELENG_6_0, 6.0-RELEASE)
2005-10-11 11:52:01 UTC (RELENG_5, 5.4-STABLE)
2005-10-11 11:52:28 UTC (RELENG_5_4, 5.4-RELEASE-p8)
2005-10-11 11:52:13 UTC (RELENG_5_3, 5.3-RELEASE-p23)
2005-10-11 11:50:50 UTC (RELENG_4, 4.11-STABLE)
2005-10-11 11:51:45 UTC (RELENG_4_11, 4.11-RELEASE-p13)
2005-10-11 11:51:20 UTC (RELENG_4_10, 4.10-RELEASE-p19)
CVE Name: CAN-2005-2969
For general information regarding FreeBSD Security Advisories,
including descriptions of the fields above, security branches, and the
following sections, please visit
<URL:http://www.freebsd.org/security/>.
I. Background
The OpenSSL library implements the Secure Sockets Layer and Transport
Layer Security protocols, as well as providing a large number of basic
cryptographic functions.
The Secure Sockets Layer protocol exists in two versions and includes a
mechanism for negotiating the protocol version to be used. If the
protocol is executed correctly, it is impossible for a client and
server both capable of the newer version of the protocol (SSLv3) to end
up using the older version of the protocol (SSLv2).
II. Problem Description
In order to provide bug-for-bug compatibility with Microsoft Internet
Explorer 3.02, a verification step required by the Secure Sockets Layer
protocol can be disabled by using the SSL_OP_MSIE_SSLV2_RSA_PADDING
option in OpenSSL. This option is implied by the frequently-used
SSL_OP_ALL option.
III. Impact
If the SSL_OP_MSIE_SSLV2_RSA_PADDING option is enabled in a server
application using OpenSSL, an attacker who is able to intercept and
tamper with packets transmitted between a client and the server can
cause the protocol version negotiation to result in SSLv2 being used
even when both the client and the server support SSLv3. Due to a
number of weaknesses in the SSLv2 protocol, this may allow the attacker
to read or tamper with the encrypted data being sent.
Applications which do not support SSLv2, have been configured to not
permit the use of SSLv2, or do not use the SSL_OP_MSIE_SSLV2_RSA_PADDING
or SSL_OP_ALL options are not affected.
IV. Workaround
No workaround is available.
V. Solution
NOTE WELL: The solution described below causes OpenSSL to ignore the
SSL_OP_MSIE_SSLV2_RSA_PADDING option and hence to require conformance
with the Secure Sockets Layer protocol. As a result, this solution
will reintroduce incompatibility with Microsoft Internet Explorer 3.02
and any other applications which exhibit the same protocol violation.
Perform one of the following:
1) Upgrade your vulnerable system to 4-STABLE or 5-STABLE, or to the
RELENG_5_4, RELENG_5_3, RELENG_4_11, or RELENG_4_10 security branch
dated after the correction date.
2) To patch your present system:
The following patches have been verified to apply to FreeBSD 4.10,
4.11, 5.3, and 5.4 systems.
a) Download the relevant patch from the location below, and verify the
detached PGP signature using your PGP utility.
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:21/openssl.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:21/openssl.patch.asc
b) Execute the following commands as root:
# cd /usr/src
# patch < /path/to/patch
c) Recompile the operating system as described in
<URL: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html >.
Note that any statically linked applications that are not part of the
base system (i.e. from the Ports Collection or other 3rd-party sources)
must be recompiled.
All affected applications must be restarted for them to use the
corrected library. Though not required, rebooting may be the easiest
way to accomplish this.
VI. Correction details
The following list contains the revision numbers of each file that was
corrected in FreeBSD.
Branch Revision
Path
- -------------------------------------------------------------------------
RELENG_4
src/crypto/openssl/crypto/opensslv.h 1.1.1.1.2.11
src/crypto/openssl/ssl/s23_srvr.c 1.2.2.6
RELENG_4_11
src/UPDATING 1.73.2.91.2.14
src/sys/conf/newvers.sh 1.44.2.39.2.17
src/crypto/openssl/crypto/opensslv.h 1.1.1.1.2.10.4.1
src/crypto/openssl/ssl/s23_srvr.c 1.2.2.5.8.1
RELENG_4_10
src/UPDATING 1.73.2.90.2.19
src/sys/conf/newvers.sh 1.44.2.34.2.20
src/crypto/openssl/crypto/opensslv.h 1.1.1.1.2.10.2.1
src/crypto/openssl/ssl/s23_srvr.c 1.2.2.5.6.1
RELENG_5
src/crypto/openssl/crypto/opensslv.h 1.1.1.1.15.2.2
src/crypto/openssl/ssl/s23_srvr.c 1.7.6.1
RELENG_5_4
src/UPDATING 1.342.2.24.2.17
src/sys/conf/newvers.sh 1.62.2.18.2.13
src/crypto/openssl/crypto/opensslv.h 1.1.1.15.2.1.2.1
src/crypto/openssl/ssl/s23_srvr.c 1.7.10.1
RELENG_5_3
src/UPDATING 1.342.2.13.2.26
src/sys/conf/newvers.sh 1.62.2.15.2.28
src/crypto/openssl/crypto/opensslv.h 1.1.1.15.4.1
src/crypto/openssl/ssl/s23_srvr.c 1.7.8.1
RELENG_6
src/crypto/openssl/ssl/s23_srvr.c 1.7.12.1
src/crypto/openssl/crypto/opensslv.h 1.1.1.16.2.1
RELENG_6_0
src/UPDATING 1.73.2.91.2.14
src/crypto/openssl/crypto/opensslv.h 1.1.1.16.4.1
src/crypto/openssl/ssl/s23_srvr.c 1.7.14.1
- -------------------------------------------------------------------------
VII. References
http://www.openssl.org/news/secadv_20051011.txt
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-2969
The latest revision of this advisory is available at
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:21.openssl.asc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (FreeBSD)
iD8DBQFDS6g2FdaIBMps37IRAr7CAJ9l7bq6Fy1l1bN2LRUS0bXqi+aKKACfW1Sj
JCNxiTF4GT/oV2EMDnIs0gc=
=j+YS
-----END PGP SIGNATURE-----