Bugtraq mailing list archives

NetBSD Security Advisory 2002-005: OpenSSH protocol version 2 challenge-response authentication


From: NetBSD Security Officer <security-officer () netbsd org>
Date: Thu, 27 Jun 2002 13:11:57 -0400


-----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-----


Current thread: