[FreeBSD] SSL 2.0 Rollback Schwachstelle in OpenSSL - FreeBSD-SA-05:21.openssl

win-sec-ssc at dfn-cert.de win-sec-ssc at dfn-cert.de
Die Okt 11 16:52:33 CEST 2005


-----BEGIN PGP SIGNED MESSAGE-----

Liebe Kolleginnen und Kollegen,

soeben erreichte uns nachfolgende Warnung des FreeBSD Security Officers.
Wir geben diese Informationen unveraendert an Sie weiter.

OpenSSL ist ein Open Source Toolkit, das unter anderem Secure Sockets
Layer (SSL v2/v3) und Transport Layer Security (TLS v1) Implementierungen 
fuer Webserver und andere Produkte zur Verfuegung stellt.

OpenSSL besitzt die Option SSL_OP_MSIE_SSLV2_RSA_PADDING, um einen
Fehler im Internet Explorer 3.02 auszugleichen und eine Zusammenarbeit
zu ermoeglichen. Diese Option wird impliziert, wenn SSL_OP_ALL aktiviert
wird.

CAN-2005-2969 - SSL 2.0 Rollback Schwachstelle in OpenSSL

  Sind sowohl Server als auch Client in der Lage SSLv3 zu verwenden, so
  einigen sich diese auch darauf und nicht auf SSLv2, da dieses
  Protokoll einige kritische Sicherheitsprobleme hat, die einem
  Angreifer u.U. das Mitlesen oder Manipulieren der transportierten
  Daten erlauben.

  Ist die Option SSL_OP_MSIE_SSLV2_RSA_PADDING in OpenSSL aktiviert,
  kann ein entfernter Angreifer die Verwendung von SSLv2 erzwingen,
  obwohl beide Seiten in der Lage sind SSLv3 zu verwenden. Der Angreifer
  muss dazu in der Lage sein die Netzwerkpakete zu manipulieren. Die
  Schwachstelle laesst sich nur Ausnutzen wenn SSLv2 nicht deaktiviert
  wurde.

  Mit diesem Patch nimmt OpenSSL keine Ruecksicht mehr auf die
  fehlerhafte Implementierung im Internet Explorer 3.02.

Betroffen sind die folgenden Software Pakete und Plattformen:

  Bibliothek openssl, wenn die Option SSL_OP_MSIE_SSLV2_RSA_PADDING
  oder SSL_OP_ALL verwendet wird und SSLv2 aktiviert ist.

  Alle Releases von FreeBSD vor:
  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)

Vom Hersteller werden ueberarbeitete Pakete zur Verfuegung gestellt.

(c) der deutschen Zusammenfassung bei DFN-CERT Services GmbH; die
Verbreitung, auch auszugsweise, ist nur unter Hinweis auf den Urheber,
DFN-CERT Services GmbH, und nur zu nicht kommerziellen Zwecken
gestattet.

Mit freundlichen Gruessen,
   Andreas Bunten, DFN-CERT

- -- 
Andreas Bunten (CSIRT), DFN-CERT Services GmbH
https://www.dfn-cert.de/, +49 40 808077-617


- -----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-----
-----BEGIN PGP SIGNATURE-----

iQEVAwUBQ0vRsigU04YpslABAQGPdwgAqJ+bGEvd+NgFTqTjmY5p6Q0C/2YKJ1E7
j38lZAI1akH1ToQNwXNg6VZ9OxRaqGZgQ/T/BvHHbCaulJo+3Pd5ghproliqGKUA
zEI8XusaHuHlHqhPBqHt6rRN5ZRtpTLLNxeLpRGskLBumTPuEKz701T6SYwZD4ku
M4iN9SF07yNAPhM7TEI12vbbfq1HQVMHRjvu/K+MA/VglF4Bua8ePDWTYCY8/kuX
xj6VLD1CSWg6YR0mjDMtoFU8dzLMGA7J0pciKJcIAqDp81gY3Ey7nlE4YPwcY86G
LwRd9AMr1PYskGyvfsrXX9BOGPth2N/XpB4IhTRfvs5TdBoKvOIxUQ==
=mG76
-----END PGP SIGNATURE-----