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

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

Submit an answer

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Want to learn more? Join the DigitalOcean Community!

Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in Q&A, subscribe to topics of interest, and get courses and tools that will help you grow as a developer and scale your project or business.

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

You can take actions on the server side, based on client version (warn users, etc): POC: (works on ubuntu trusty)