OpenSSH Client Bug CVE-2016-0777 and CVE-2016-0778

January 14, 2016 26.3k views
Security System Tools

The OpenSSH project today reported a client side issue affecting OpenSSH versions 5.4 - 7.1. This issue could allow an SSH client to leak key information, potentially exposing users to man-in-the-middle attacks.

What does this mean?

A key exchange is initiated when an SSH client connects to a server. A new "roaming" feature included in the OpenSSH client can be exploited and a malicious server could use this issue to leak client memory to the server, including private client user keys.

Who is affected?

This issue affects the OpenSSH client (not server) on most modern operating systems including Linux, FreeBSD and Mac OSX. This issue may also affect users running OpenSSH for Windows but does not affect users using PuTTY on Windows.

That means you don't have to update OpenSSH on your Droplet (the server side), but you should update the OpenSSH client on your local computer. If you want to cover all your bases, you could generate new key pairs and upload the new public keys to your servers (see the second-to-last section for details).

How to fix the isssue

While patches and updates are being rolled out for affected distributions, the feature causing this security issue can be disabled manually in order to resolve the issue. On OS X, Linux and BSD variants this can be done by adding a line to your SSH configuration.

On Linux and FreeBSD

Run the following command to add the new line to your configuration:

echo 'UseRoaming no' | sudo tee -a /etc/ssh/ssh_config

On Mac OSX

Run the following command to add the new line to your configuration:

echo "UseRoaming no" >> ~/.ssh/config

Close and Reopen Sessions

Once you have done this you should close any open SSH sessions in order for the change to be effective.

For the Security-Conscious: Regenerate All Your Key Pairs

If you think someone gained access to your private keys using this vulnerability, or if you want to cover your bases "just in case," you should regenerate all of your key pairs and upload the new public keys to your servers.

Learn More

OpenSSH: client bug CVE-0216-0777 and CVE-0216-0778
Ubuntu - USN-2869-1: OpenSSH vulnerabilities

5 Answers

Openssh config allows host specific options without specifying a termination marker, so if you have one (as many people do on their .ssh/config files) appending the "UseRemote no" command will only apply to that block. I think it's safer to tell people to write that on the top of the file

If I'm suddenly getting "host key changed" warnings when logging in to a variety of different sites - should I be concerned about MiTM?

Despite what the article says, you should run updates on your servers as well as clients because you probably use SSH to connect to other servers.

You can take actions on the server side, based on client version (warn users, etc): POC: http://pastebin.com/emSquuX7 (works on ubuntu trusty)

If I follow the directions described above, mosh no longer works. As I understand it, mosh sits on ssh, does using mosh instead of ssh still make my connection insecure if I do not follow these instructions?

Have another answer? Share your knowledge.