-----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.20
  src/sys/conf/newvers.sh                                  1.44.2.34.2.21
  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.416.2.3.2.1
  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)

iD8DBQFDThqmFdaIBMps37IRAuh+AJ4wt03pXt8g+9okQLaChhwrLgT+DQCfaBwg
NQ1AyadfK+gC7adAcuLBQ2k=
=a1sE
-----END PGP SIGNATURE-----
