-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

=============================================================================
FreeBSD-SA-15:16.openssh                                    Security Advisory
                                                          The FreeBSD Project

Topic:          OpenSSH multiple vulnerabilities

Category:       contrib
Module:         openssh
Announced:      2015-07-28, revised on 2015-07-30
Affects:        All supported versions of FreeBSD.
Corrected:      2015-07-28 19:58:44 UTC (stable/10, 10.2-PRERELEASE)
                2015-07-28 19:58:44 UTC (stable/10, 10.2-BETA2-p2)
                2015-07-28 19:59:04 UTC (releng/10.2, 10.2-RC1-p1)
                2015-07-28 19:59:11 UTC (releng/10.1, 10.1-RELEASE-p16)
                2015-07-28 19:58:54 UTC (stable/9, 9.3-STABLE)
                2015-07-28 19:59:22 UTC (releng/9.3, 9.3-RELEASE-p21)
                2015-07-30 10:09:07 UTC (stable/8, 8.4-STABLE)
                2015-07-30 10:09:31 UTC (releng/8.4, 8.4-RELEASE-p36)
CVE Name:       CVE-2014-2653, CVE-2015-5600

For general information regarding FreeBSD Security Advisories,
including descriptions of the fields above, security branches, and the
following sections, please visit <URL:https://security.FreeBSD.org/>.

0.   Revision history

v1.0  2015-07-28 Initial release.
v1.1  2015-07-30 Revised patch for FreeBSD 8.x to address regression when
                 keyboard interactive authentication is used.
v1.2  2015-07-30 Revised for typos.

I.   Background

OpenSSH is an implementation of the SSH protocol suite, providing an
encrypted and authenticated transport for a variety of services,
including remote shell access.

The security of the SSH connection relies on the server authenticating
itself to the client as well as the user authenticating itself to the
server.  SSH servers uses host keys to verify their identity.

RFC 4255 has defined a method of verifying SSH host keys using Domain
Name System Security (DNSSEC), by publishing the key fingerprint using
DNS with "SSHFP" resource record.  RFC 6187 has defined methods to use
a signature by a trusted certification authority to bind a given public
key to a given digital identity with X.509v3 certificates.

The PAM (Pluggable Authentication Modules) library provides a flexible
framework for user authentication and session setup / teardown.

OpenSSH uses PAM for password authentication by default.

II.  Problem Description

OpenSSH clients does not correctly verify DNS SSHFP records when a server
offers a certificate. [CVE-2014-2653]

OpenSSH servers which are configured to allow password authentication
using PAM (default) would allow many password attempts.

III. Impact

A malicious server may be able to force a connecting client to skip DNS
SSHFP record check and require the user to perform manual host verification
of the host key fingerprint.  This could allow man-in-the-middle attack
if the user does not carefully check the fingerprint.  [CVE-2014-2653]

A remote attacker may effectively bypass MaxAuthTries settings, which would
enable them to brute force passwords. [CVE-2015-5600]

IV.  Workaround

Systems that do not use OpenSSH are not affected.

There is no workaround for CVE-2014-2653, but the problem only affects
networks where DNSsec and SSHFP is properly configured.  Users who uses
SSH should always check server host key fingerprints carefully when
prompted.

System administrators can set:

	UsePAM no

In their /etc/ssh/sshd_config and restart sshd service to workaround the
problem described as CVE-2015-5600 at expense of losing features provided
by the PAM framework.

We recommend system administrators to disable password based authentication
completely, and use key based authentication exclusively in their SSH server
configuration, when possible.  This would eliminate the possibility of being
ever exposed to password brute force attack.

V.   Solution

Perform one of the following:

1) Upgrade your vulnerable system to a supported FreeBSD stable or
release / security branch (releng) dated after the correction date.

SSH service has to be restarted after the update.  A reboot is recommended
but not required.

2) To update your vulnerable system via a binary patch:

Systems running a RELEASE version of FreeBSD on the i386 or amd64
platforms can be updated via the freebsd-update(8) utility:

# freebsd-update fetch
# freebsd-update install

SSH service has to be restarted after the update.  A reboot is recommended
but not required.

3) To update your vulnerable system via a source code patch:

The following patches have been verified to apply to the applicable
FreeBSD release branches.

a) Download the relevant patch from the location below, and verify the
detached PGP signature using your PGP utility.

[FreeBSD 9.3, 10.1, 10.2]
# fetch https://security.FreeBSD.org/patches/SA-15:16/openssh.patch
# fetch https://security.FreeBSD.org/patches/SA-15:16/openssh.patch.asc
# gpg --verify openssh.patch.asc

[FreeBSD 8.4]
# fetch https://security.FreeBSD.org/patches/SA-15:16/openssh-8.patch
# fetch https://security.FreeBSD.org/patches/SA-15:16/openssh-8.patch.asc
# gpg --verify openssh-8.patch.asc

# fetch https://security.FreeBSD.org/patches/SA-15:16/openssh-8-errata.patch
# fetch https://security.FreeBSD.org/patches/SA-15:16/openssh-8-errata.patch.asc
# gpg --verify openssh-8-errata.patch.asc

b) Apply the patch.  Execute the following commands as root:

# cd /usr/src
# patch < /path/to/patch

c) Recompile the operating system using buildworld and installworld as
described in <URL:https://www.FreeBSD.org/handbook/makeworld.html>.

Restart the SSH service, or reboot the system.

VI.  Correction details

The following list contains the correction revision numbers for each
affected branch.

Branch/path                                                      Revision
- -------------------------------------------------------------------------
stable/8/                                                         r286067
releng/8.4/                                                       r286068
stable/9/                                                         r285977
releng/9.3/                                                       r285980
stable/10/                                                        r285976
releng/10.1/                                                      r285979
releng/10.2/                                                      r285978
- -------------------------------------------------------------------------

To see which files were modified by a particular revision, run the
following command, replacing NNNNNN with the revision number, on a
machine with Subversion installed:

# svn diff -cNNNNNN --summarize svn://svn.freebsd.org/base

Or visit the following URL, replacing NNNNNN with the revision number:

<URL:https://svnweb.freebsd.org/base?view=revision&revision=NNNNNN>

VII. References

<URL:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-2653>

<URL:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5600>

The latest revision of this advisory is available at
<URL:https://security.FreeBSD.org/advisories/FreeBSD-SA-15:16.openssh.asc>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.1.6 (FreeBSD)

iQIcBAEBCgAGBQJVulgaAAoJEO1n7NZdz2rnhdMP/3d3HYI6Rz+1jLhRB5WhwVg5
2z16m5KAabsL3QZuTItZ5gv2DB4b3BjP91kIhAS5WSpyPU503N1OhxhyhEmRPeGJ
Sf0oX54/uFDg8dHhLt2FHT+ebtndHYy+jqfOODZmf4CotCqeEVXnBDzeaYq4iAvY
6UHFu3n8UPdooNWfG+20Tfo9gOkM65rczODjOt1tPICK0oar07xVlLcC5UBdYQuT
ztNg42lmXjftS5hGifo4uuGeeqaI+0uB3LcMo9WCYFo2kwMVghNIQUcCWnDDqZ6h
2Ci4Ho4N6FXiQnJ8d4Zwo6+cESeFhqDrPsO6KmeourVwiH8TXUTNxxm5o7fC+clL
3d7vsckBYPZdHKZb+E3SktjPTHaEXGrKMq24rwCTWf9GzvHVAehOEzYUPssR55lg
q7O6SoaWmSsa7uxYdyj1ZKQRYfVkVV8I7kfV9z56ZUngPaJySA145LHuC8G2Hbm5
YAFCsGgsrSSycWJNqAeFsNFdq9BWvbl2UdvR4lgXDN8Fty0fTqEKyq6qwDj3uDul
1NzGijH5GyhR3PEUBgGYNL1RvmL9FY+47HAqLXTfadypevozQqwUCIIN329uJPZ/
VTQte7DQmMvwlDus5ihCLZ3/hfR/54Fixo7FkwCud+YBRmgeG9SnIuCNaX4nZB6R
gzAUSqUVcWz7N1/nyns8
=qKoP
-----END PGP SIGNATURE-----
