Subject: NetBSD Security Advisory 2005-010: OpenSSL "man in the middle" can force weak protocol
To: None <tech-security@NetBSD.org, current-users@NetBSD.org>
From: NetBSD Security-Officer <security-officer@netbsd.org>
List: current-users
Date: 11/08/2005 09:59:26
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


		 NetBSD Security Advisory 2005-010
		 =================================

Topic:		OpenSSL "man in the middle" can force weak protocol

Version:	NetBSD-current:	source prior to October 11, 2005
		NetBSD 2.1:	not affected
		NetBSD 2.0.3:	not affected
		NetBSD 2.0.2:	affected
		NetBSD 2.0:	affected
		NetBSD 1.6.*:	affected
		pkgsrc:		openssl packages prior to 0.9.7h

Severity:	information leak due to false sense of security

Fixed:		NetBSD-current:		October 11, 2005
		NetBSD-3 branch:	October 11, 2005
						(3.0 will include the fix)
		NetBSD-2.0 branch:	October 11, 2005
						(2.0.3 includes the fix)
		NetBSD-2 branch:	October 11, 2005
						(2.1 includes the fix)
		NetBSD-1.6 branch:	October 11, 2005
						(1.6.3 will include the fix)
		pkgsrc:			openssl-0.9.7h corrects this issue


Abstract
========

A vulnerability in OpenSSL allowed a malicious man-in-the-middle to force
two endpoints of an SSL connection to negotiate using SSL 2.0, which is
known to have severe cryptographic weaknesses.

This vulnerability has been assigned CVE reference CAN-2005-2969.


Technical Details
=================

OpenSSL has an option SSL_OP_MSIE_SSLV2_RSA_PADDING to work around
various bugs in third-party software that might prevent
interoperability with OpenSSL. This option is implied by the use of
SSL_OP_ALL.

The said option disables a verification step in the SSL 2.0 server
supposed to prevent active protocol-version rollback attacks; such
attacks force the use of weaker protocols.

With this verification step disabled, a man-in-the-middle can force a
client and a server to negotiate the SSL 2.0 protocol, even if both
parties support SSL 3.0 or TLS 1.0.


Solutions and Workarounds
=========================

A workaround is to completely disable SSL 2.0 in any application that
uses OpenSSL.

It is recommended that NetBSD users of vulnerable versions update
their binaries.

The following instructions describe how to upgrade your OpenSSL
binaries by updating your source tree and rebuilding and
installing a new version of OpenSSL.

* NetBSD-current:

	Systems running NetBSD-current dated from before 2005-10-11
	should be upgraded to NetBSD-current dated 2005-10-12 or later.

	The following files need to be updated from the
	netbsd-current CVS branch (aka HEAD):
		crypto/dist/openssl/ssl/s23_srvr.c
		crypto/dist/openssl/crypto/opensslv.h

	To update from CVS, re-build, and re-install OpenSSL:

		# cd src
		# cvs update -d -P crypto/dist/openssl/ssl/s23_srvr.c
		# cvs update -d -P crypto/dist/openssl/crypto/opensslv.h
		# cd lib/libcrypto
		# make USETOOLS=no cleandir dependall
		# make USETOOLS=no install


* NetBSD 2.*:

	The binary distribution of NetBSD 2.0 is vulnerable.

	Systems running NetBSD 2.0 sources dated from before
	2005-10-11 should be upgraded from NetBSD 2.0 sources dated
	2005-10-12 or later.

	NetBSD 2.1 and 2.0.3 include the fix.

	The following files need to be updated from the
	netbsd-2 CVS branch:
		crypto/dist/openssl/ssl/s23_srvr.c
		crypto/dist/openssl/crypto/opensslv.h

	To update from CVS, re-build, and re-install OpenSSL:

		# cd src
		# cvs update -d -P -r netbsd-2 crypto/dist/openssl/ssl/s23_srvr.c
		# cvs update -d -P -r netbsd-2 crypto/dist/openssl/crypto/opensslv.h
		# cd lib/libcrypto
		# make USETOOLS=no cleandir dependall
		# make USETOOLS=no install


* NetBSD 1.6.*:

	The binary distributions of NetBSD 1.6, 1.6.1, and 1.6.2 are vulnerable.

	Systems running NetBSD 1.6 sources dated from before
	2005-10-11 should be upgraded from NetBSD 1.6 sources dated
	2005-10-12 or later.

	NetBSD 1.6.3 will include the fix.

	The following files need to be updated from the
	netbsd-1-6 CVS branch:
		crypto/dist/openssl/ssl/s23_srvr.c
		crypto/dist/openssl/crypto/opensslv.h

	To update from CVS, re-build, and re-install OpenSSL:

		# cd src
		# cvs update -d -P -r netbsd-1-6 crypto/dist/openssl/ssl/s23_srvr.c
		# cvs update -d -P -r netbsd-1-6 crypto/dist/openssl/crypto/opensslv.h
		# cd lib/libcrypto
		# make USETOOLS=no cleandir dependall
		# make USETOOLS=no install



Thanks To
=========

Thanks to Yutaka Oiwa for reporting this issue to the OpenSSL team.


Revision History
================

	2005-10-31	Initial release


More Information
================

Advisories may be updated as new information becomes available.
The most recent version of this advisory (PGP signed) can be found at 
  ftp://ftp.NetBSD.org/pub/NetBSD/security/advisories/NetBSD-SA2005-010.txt.asc

Information about NetBSD and NetBSD security can be found at
http://www.NetBSD.org/ and http://www.NetBSD.org/Security/.


Copyright 2005, The NetBSD Foundation, Inc.  All Rights Reserved.
Redistribution permitted only in full, unmodified form.

$NetBSD: NetBSD-SA2005-010.txt,v 1.5 2005/10/31 22:21:02 dan Exp $

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (NetBSD)

iQCVAwUBQ2fJ7j5Ru2/4N2IFAQJimQP/Z04xQK/iej+Hvzqu2wWjRTug9Hp608IJ
MtOck/ReIoRCGYMSsEVVBlH0nIZtdCK2scnjz4u2DWsZ8CCrGpy6tjR3TBib1zkZ
VcH2eEBc3GJk66/nnJB3+yAy/7ce1GRFtFBdcrAa5Jve4bYFIu0INsRKGOS36b4F
NaIdermbUrk=
=t3d8
-----END PGP SIGNATURE-----