The developers of OpenSSH, a popular implementation of the Secure Shell (SSH) protocol, today announced the availability of an update that patches several security bugs.
OpenSSH 7.1p2 resolves a serious information disclosure vulnerability (CVE-2016-0777) related to SSH roaming, a feature designed to enable clients to resume an SSH session at a later time if the connection breaks unexpectedly.
The problematic feature, present in client versions between 5.4 and 7.1, introduces a memory disclosure flaw that allows a rogue SSH server to trick a client into leaking sensitive data, including private keys, from its memory.
“The matching server code has never been shipped, but the client code was enabled by default and could be tricked by a malicious server into leaking client memory to the server, including private client user keys,” OpenSSH developers noted in an advisory. “The authentication of the server host key prevents exploitation by a man-in-the-middle, so this information leak is restricted to connections to malicious or compromised servers.”
Another flaw found in the SSH roaming code is a buffer overflow (CVE-2016-0778) that could lead to a file descriptor leak. However, this issue is less severe since it’s possibly not exploitable or exploitable only in certain circumstances — not the default configuration.
Both vulnerabilities, identified by researchers at Qualys, have been patched by completely disabling the roaming code in the OpenSSH client.
Patches have been made available for Debian, and Red Hat should also have security updates ready soon. Until patches are applied, users can add the “UseRoaming no” option to either the global /etc/ssh/ssh_config file or the user configuration in ~/.ssh/config.
OpenSSH 7.1p2 also eliminates fallback from untrusted X11-forwarding to trusted forwarding in case the X server disables the SECURITY extension. The latest version also addresses an out-of-bounds read access flaw in the packet handling code.