Subject: NetBSD Security Advisory 2002-005: OpenSSH protocol version 2 challenge-response authentication
To: None <netbsd-announce@netbsd.org>
From: NetBSD Security Officer <security-officer@netbsd.org>
List: netbsd-announce
Date: 06/27/2002 13:11:21
-----BEGIN PGP SIGNED MESSAGE-----
NetBSD Security Advisory 2002-005
=================================
Topic: OpenSSH protocol version 2 challenge-response authentication
vulnerability
Version: NetBSD-current: prior to May 14, 2002
NetBSD-1.6_BETAx: affected
NetBSD-1.5.2: affected
NetBSD-1.5.1: affected
NetBSD-1.5: affected
NetBSD-1.4.*: not affected (does not ship with OpenSSH)
pkgsrc: packages prior to openssh-3.3.0.1
Severity: high, remote root compromise
Workaround: NetBSD-current: May 14, 2002
NetBSD-1.6 branch: partial by default (priv sep)
NetBSD-1.5 branch: instructions below, OpenSSH 3 and later
pkgsrc: June 25, 2002 (with openssh-3.3.0.1)
Fixed: NetBSD-current: June 26, 2002 (OpenSSH 3.4)
NetBSD-1.6 branch: June 26, 2002 (OpenSSH 3.4)
NetBSD-1.5 branch: June 26, 2002 (patch on advisory)
pkgsrc: June 26, 2002 (with openssh-3.4.0.1)
Version string "NetBSD_Secure_Shell-20020626" will identify
that the fix is in place.
Abstract
========
OpenSSH has a vulnerability in protocol version 2 challenge-response
authentication. OpenSSH 3.4 must be installed to completely overcome the
problem.
Technical Details
=================
Vulnerability itself:
http://bvlive01.iss.net/issEn/delivery/xforce/alertdetail.jsp?oid=20584
http://openssh.org/txt/iss.adv
http://openssh.org/txt/preauth.adv
CERT CA-2002-18
http://www.cert.org/advisories/CA-2002-18.html
http://www.kb.cert.org/vuls/id/369347
Solutions and Workarounds
=========================
Some workarounds are available, which may somewhat mitigate the risk:
- Turn off challenge-response authentication by having the following
in sshd_config:
ChallengeResponseAuthentication no
On some systems, the following option is also required together
with the above. It is not relevant for NetBSD.
PAMAuthenticationViaKbdInt no
Note that turning these features off will disable SSH logins via
S/Key (OTP) authentication. Compiling OpenSSH without support for
S/Key and PAM authentication will also eliminate this
vulnerability.
- If you do not require SSH Protocol version 2 support, disabling it
will eliminate the vulnerable codepath. Remember that version 1 is
considered significantly less secure than version 2, and this
workaround is not recommended for long term use. Additionally, if
your users use version 2 authentication methods, they will be unable
to connect.
- The new Privelege Separation feature (available since OpenSSH
3.2.x) has been promoted as a potential mitigation of this issue.
This feature is available in NetBSD-current as of May 14th, and is
enabled by default.
Privilege Separation might provide a benefit, potentially
preventing this or future vulnerabilities from being root exploits,
and limiting their nature to a denial of service. Although a
useful defensive feature, this is not guaranteed, expecially given
the implementation has not yet met the test of time.
Do not avoid patching this issue simply because you have enabled
Privelege Separation.
Effect of privilege separation:
http://www.citi.umich.edu/u/provos/ssh/privsep.html
The following instructions describe how to upgrade your OpenSSH
binaries by updating your source tree and rebuilding and
installing a new version.
Releases of NetBSD 1.5.3 and NetBSD 1.6 are imminent. This is a reminder
to consider upgrading when they are available, if you are running
anything older than NetBSD 1.5.3. Many security-related improvements
have been made.
To check if your system has a vulnerable version of sshd, run "sshd -V"
(it is an invalid argument, but it will present the version number).
Any version dated "NetBSD_Secure_Shell-20020626" or later will identify
that the fix is in place.
Although workarounds were provided above, update your binaries to make
very sure that you don't have vulnerable binaries around.
* NetBSD-current:
Systems running NetBSD-current dated from before 2002-05-13
should be upgraded to NetBSD-current dated 2002-05-14 or later
if you wish to use privilege separation support as a stopgap measure.
It is recommended to update to source dated 2002-06-26 for a
complete fix (with OpenSSH 3.4).
The following directories need to be updated from the
netbsd-current CVS branch (aka HEAD):
crypto/dist/ssh
usr.bin/ssh
To update from CVS, re-build, and re-install:
# cd src
# cvs update -d -P crypto/dist/ssh usr.bin/ssh
# cd usr.bin/ssh
# make cleandir dependall
# make install
You also need to have an sshd UID and GID, as well as /var/chroot/sshd
directory (chroot jail), as below:
Create a group, with /usr/sbin/groupadd, or vi /etc/group
sshd:*:16:
Create a user, with vipw, or /usr/sbin/useradd
sshd:*:16:16::0:0:sshd privsep:/var/chroot/sshd:/sbin/nologin
Create the directory /var/chroot/sshd
Make sure you have "UsePrivilegeSeparation yes" in your
/etc/ssh/sshd_config (or it can be commented out, as the default value
is "yes"), to mitigate future issues.
* NetBSD 1.6 and beta:
Systems running NetBSD 1.6 beta systems have OpenSSH privilege
separation turned on by default, follow the workaround section
as approriate for your environment, and upgrade to source dated
2002-06-26 (with OpenSSH 3.4) to close this vulnerability.
NetBSD 1.6 will ship with OpenSSH 3.4, which has a complete fix.
The following directories need to be updated from the
netbsd-1-6 CVS branch:
crypto/dist/ssh
usr.bin/ssh
To update from CVS, re-build, and re-install:
# cd src
# cvs update -d -P crypto/dist/ssh usr.bin/ssh
# cd usr.bin/ssh
# make cleandir dependall
# make install
The sshd user, group, and chroot jail directories should already exist
in a 1.6 installation.
* NetBSD 1.5, 1.5.1, 1.5.2:
Systems running NetBSD 1.5.* releases dated from before
2002-06-26 should be upgraded to sources dated 2002-06-26
or later. Sources on the branch after that date include changes
presented in the following advisory:
http://openssh.org/txt/preauth.adv
NOTE: the upgrade process will pull in changes presented in this
advisory. Therefore, (1) it won't get you OpenSSH 3.4, (2) It
won't make your sshd support privilege separation. If you need
to enable privilege separation, install OpenSSH from pkgsrc
(openssh-3.4.0.1).
The following directories need to be updated from the
netbsd-1-5 CVS branch:
crypto/dist/ssh
usr.bin/ssh
To update from CVS, re-build, and re-install:
# cd src
# cvs update -d -P crypto/dist/ssh usr.bin/ssh
# cd usr.bin/ssh
# make cleandir dependall
# make install
* pkgsrc: (All systems, including NetBSD 1.4.*)
For a complete fix, openssh-3.4.0.1 or later should be
installed from pkgsrc/security/openssh. See above, as well as
console messages during pkgsrc build, for instructions to enable
privilege separation functionality.
Thanks To
=========
Markus Friedl and Jun-ichiro itojun Hagino for patches, and initial
advisory text.
Revision History
================
2002-06-26 Initial release
More Information
================
An up-to-date PGP signed copy of this release will be maintained at
ftp://ftp.netbsd.org/pub/NetBSD/security/advisories/NetBSD-SA2002-005.txt.asc
Information about NetBSD and NetBSD security can be found at
http://www.NetBSD.ORG/ and http://www.NetBSD.ORG/Security/.
Copyright 2002, The NetBSD Foundation, Inc. All Rights Reserved.
$NetBSD: NetBSD-SA2002-005.txt,v 1.25 2002/06/27 14:27:43 david Exp $
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (NetBSD)
Comment: For info see http://www.gnupg.org
iQCVAwUBPRrmHD5Ru2/4N2IFAQF7HQP+IIcCWFouTSuh/7jZZYVzXSzGFPGCJ2XW
1FRBhThxci6IpR+k7D6hrphaSKtyksP0MLNLC9fZowwiZFINE+2rqoyZ76YX7j7p
wZU01Xxiai59a8v54SiHRBfCu4OKmTkdvUahwyPMQ6g+CLEwDl2fF68Uow42w7U2
1w5jn+FmAXE=
=r1yo
-----END PGP SIGNATURE-----