CVE-2016-6210
Medium · 5.9CVSS
5.9
EPSS
88.9%
Published
Feb 13, 2017
CISA due date
—
Cloudanix analysis
Attackers can discover which usernames exist on a server by measuring how long the login process takes when they try very long passwords.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- High
- Impact
- Data Exposure
- Component
- Network Service
- Class
- Information Disclosure
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Remote attackers can enumerate valid usernames by observing timing differences in SSH authentication responses; non-existent usernames trigger BLOWFISH hashing of a static password while valid usernames use the configured SHA256/SHA512 method when a large password is supplied.
Why it matters to the business
Attackers gain knowledge of legitimate account names, enabling more focused follow-on attacks such as credential stuffing or social engineering that can result in account compromise and unauthorized system access.
How an attack unfolds
An attacker repeatedly connects to the SSH service supplying a very long password string paired first with guessed or enumerated usernames and then with known-invalid usernames, measures the elapsed time until the server responds, and uses statistically significant timing deltas to distinguish real accounts from non-existent ones.
How to fix it
Upgrade OpenSSH to version 7.3 or later. For apache (Bitnami) installations, upgrade to version 2.4.46 which contains the corrected OpenSSH component.
How to confirm the fix worked
Verify the installed OpenSSH version is 7.3 or newer; re-test authentication timing with large passwords for both valid and invalid usernames to confirm uniform response latency.
Typical attack path
- Establish multiple SSH authentication attempts to the target service
- Submit a large password payload with candidate usernames
- Record response latency for each attempt
- Compare latencies between known-invalid and candidate usernames
- Compile list of usernames that exhibit the slower hashing path
How to detect it
Review SSH daemon logs for clusters of authentication attempts that include both valid and invalid usernames accompanied by unusually long password fields; correlate source IP addresses across multiple username probes.
- sshd.*Failed password for invalid user.*from
- sshd.*input_userauth_request: invalid user
What your security team should do
- Apply the vendor-supplied upgrade to 7.3+ (or apache Bitnami 2.4.46) on all affected systems within the next maintenance window
- Enable SSH logging of authentication attempts and monitor for high volumes of failed logins using long password strings
- Consider rate-limiting or fail2ban-style protections on the SSH service until patches are deployed
The record
sshd in OpenSSH before 7.3, when SHA256 or SHA512 are used for user password hashing, uses BLOWFISH hashing on a static password when the username does not exist, which allows remote attackers to enumerate users by leveraging the timing difference between responses when a large password is provided.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Alpine:v3.2 | openssh | 0 | 6.8_p1-r7 |
| Alpine:v3.3 | openssh | 0 | 7.2_p2-r1 |
| Alpine:v3.4 | openssh | 0 | 7.2_p2-r1 |
| Debian:11 | openssh | 0 | 1:7.2p2-6 |
| Debian:12 | openssh | 0 | 1:7.2p2-6 |
| Debian:13 | openssh | 0 | 1:7.2p2-6 |
| Debian:14 | openssh | 0 | 1:7.2p2-6 |
| Debian:7 | openssh | 0 | 1:6.0p1-4+deb7u5 |
| Debian:8 | openssh | 0 | 1:6.7p1-5+deb8u3 |
| Mageia:5 | openssh | 0 | 6.6p1-5.9.mga5 |
| Red Hat:enterprise_linux:6::client | openssh | 0 | 0:5.3p1-123.el6_9 |
| Red Hat:enterprise_linux:6::client | openssh-askpass | 0 | 0:5.3p1-123.el6_9 |
| Red Hat:enterprise_linux:6::client | openssh-clients | 0 | 0:5.3p1-123.el6_9 |
| Red Hat:enterprise_linux:6::client | openssh-debuginfo | 0 | 0:5.3p1-123.el6_9 |
| Red Hat:enterprise_linux:6::client | openssh-ldap | 0 | 0:5.3p1-123.el6_9 |
| Red Hat:enterprise_linux:6::client | openssh-server | 0 | 0:5.3p1-123.el6_9 |
| Red Hat:enterprise_linux:6::client | pam_ssh_agent_auth | 0 | 0:0.9.3-123.el6_9 |
| Red Hat:enterprise_linux:6::computenode | openssh | 0 | 0:5.3p1-123.el6_9 |
| Red Hat:enterprise_linux:6::computenode | openssh-askpass | 0 | 0:5.3p1-123.el6_9 |
| Red Hat:enterprise_linux:6::computenode | openssh-clients | 0 | 0:5.3p1-123.el6_9 |
| Red Hat:enterprise_linux:6::computenode | openssh-debuginfo | 0 | 0:5.3p1-123.el6_9 |
| Red Hat:enterprise_linux:6::computenode | openssh-ldap | 0 | 0:5.3p1-123.el6_9 |
| Red Hat:enterprise_linux:6::computenode | openssh-server | 0 | 0:5.3p1-123.el6_9 |
| Red Hat:enterprise_linux:6::computenode | pam_ssh_agent_auth | 0 | 0:0.9.3-123.el6_9 |
| Red Hat:enterprise_linux:6::server | openssh | 0 | 0:5.3p1-123.el6_9 |
| Red Hat:enterprise_linux:6::server | openssh-askpass | 0 | 0:5.3p1-123.el6_9 |
| Red Hat:enterprise_linux:6::server | openssh-clients | 0 | 0:5.3p1-123.el6_9 |
| Red Hat:enterprise_linux:6::server | openssh-debuginfo | 0 | 0:5.3p1-123.el6_9 |
| Red Hat:enterprise_linux:6::server | openssh-ldap | 0 | 0:5.3p1-123.el6_9 |
| Red Hat:enterprise_linux:6::server | openssh-server | 0 | 0:5.3p1-123.el6_9 |
| Red Hat:enterprise_linux:6::server | pam_ssh_agent_auth | 0 | 0:0.9.3-123.el6_9 |
| Red Hat:enterprise_linux:6::workstation | openssh | 0 | 0:5.3p1-123.el6_9 |
| Red Hat:enterprise_linux:6::workstation | openssh-askpass | 0 | 0:5.3p1-123.el6_9 |
| Red Hat:enterprise_linux:6::workstation | openssh-clients | 0 | 0:5.3p1-123.el6_9 |
| Red Hat:enterprise_linux:6::workstation | openssh-debuginfo | 0 | 0:5.3p1-123.el6_9 |
| Red Hat:enterprise_linux:6::workstation | openssh-ldap | 0 | 0:5.3p1-123.el6_9 |
| Red Hat:enterprise_linux:6::workstation | openssh-server | 0 | 0:5.3p1-123.el6_9 |
| Red Hat:enterprise_linux:6::workstation | pam_ssh_agent_auth | 0 | 0:0.9.3-123.el6_9 |
| Red Hat:enterprise_linux:7::client | openssh | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::client | openssh-askpass | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::client | openssh-cavs | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::client | openssh-clients | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::client | openssh-debuginfo | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::client | openssh-keycat | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::client | openssh-ldap | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::client | openssh-server | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::client | openssh-server-sysvinit | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::client | pam_ssh_agent_auth | 0 | 0:0.10.3-1.11.el7 |
| Red Hat:enterprise_linux:7::computenode | openssh | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::computenode | openssh-askpass | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::computenode | openssh-cavs | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::computenode | openssh-clients | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::computenode | openssh-debuginfo | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::computenode | openssh-keycat | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::computenode | openssh-ldap | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::computenode | openssh-server | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::computenode | openssh-server-sysvinit | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::computenode | pam_ssh_agent_auth | 0 | 0:0.10.3-1.11.el7 |
| Red Hat:enterprise_linux:7::server | openssh | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::server | openssh-askpass | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::server | openssh-cavs | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::server | openssh-clients | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::server | openssh-debuginfo | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::server | openssh-keycat | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::server | openssh-ldap | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::server | openssh-server | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::server | openssh-server-sysvinit | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::server | pam_ssh_agent_auth | 0 | 0:0.10.3-1.11.el7 |
| Red Hat:enterprise_linux:7::workstation | openssh | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::workstation | openssh-askpass | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::workstation | openssh-cavs | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::workstation | openssh-clients | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::workstation | openssh-debuginfo | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::workstation | openssh-keycat | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::workstation | openssh-ldap | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::workstation | openssh-server | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::workstation | openssh-server-sysvinit | 0 | 0:7.4p1-11.el7 |
| Red Hat:enterprise_linux:7::workstation | pam_ssh_agent_auth | 0 | 0:0.10.3-1.11.el7 |
| SUSE:Linux Enterprise Desktop 12 SP1 | openssh | 0 | 6.6p1-52.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | openssh-askpass-gnome | 0 | 6.6p1-52.1 |
| SUSE:Linux Enterprise Point of Sale 11 SP3 | openssh | 0 | 6.2p2-0.33.2 |
| SUSE:Linux Enterprise Point of Sale 11 SP3 | openssh-askpass-gnome | 0 | 6.2p2-0.33.5 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | openssh | 0 | 6.2p2-0.33.2 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | openssh-askpass-gnome | 0 | 6.2p2-0.33.5 |
| SUSE:Linux Enterprise Server 11 SP3-TERADATA | openssh | 0 | 6.2p2-0.33.2 |
| SUSE:Linux Enterprise Server 11 SP3-TERADATA | openssh-askpass-gnome | 0 | 6.2p2-0.33.5 |
| SUSE:Linux Enterprise Server 11 SP4 | openssh | 0 | 6.6p1-28.1 |
| SUSE:Linux Enterprise Server 11 SP4 | openssh-askpass-gnome | 0 | 6.6p1-28.2 |
| SUSE:Linux Enterprise Server 11-SECURITY | openssh-openssl1 | 0 | 6.6p1-15.1 |
| SUSE:Linux Enterprise Server 12 SP1 | openssh | 0 | 6.6p1-52.1 |
| SUSE:Linux Enterprise Server 12 SP1 | openssh-askpass-gnome | 0 | 6.6p1-52.1 |
| SUSE:Linux Enterprise Server 12-LTSS | openssh | 0 | 6.6p1-52.1 |
| SUSE:Linux Enterprise Server 12-LTSS | openssh-askpass-gnome | 0 | 6.6p1-52.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | openssh | 0 | 6.6p1-28.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | openssh-askpass-gnome | 0 | 6.6p1-28.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | openssh | 0 | 6.6p1-52.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | openssh-askpass-gnome | 0 | 6.6p1-52.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | openssh | 0 | 6.6p1-52.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | openssh-askpass-gnome | 0 | 6.6p1-52.1 |
| SUSE:Manager 2.1 | openssh | 0 | 6.2p2-0.33.2 |
| SUSE:Manager 2.1 | openssh-askpass-gnome | 0 | 6.2p2-0.33.5 |
| SUSE:Manager Proxy 2.1 | openssh | 0 | 6.2p2-0.33.2 |
| SUSE:Manager Proxy 2.1 | openssh-askpass-gnome | 0 | 6.2p2-0.33.5 |
| SUSE:OpenStack Cloud 5 | openssh | 0 | 6.2p2-0.33.2 |
| SUSE:OpenStack Cloud 5 | openssh-askpass-gnome | 0 | 6.2p2-0.33.5 |
| Ubuntu:14.04:LTS | openssh | 0 | 1:6.6p1-2ubuntu2.8 |
| Ubuntu:16.04:LTS | openssh | 0 | 1:7.2p2-4ubuntu2.1 |
| openSUSE:Tumbleweed | openssh | 0 | 7.2p2-3.1 |
Related vulnerabilities
- CVE-2016-6515 The auth_password function in auth-passwd.c in sshd in OpenSSH before 7.3 does not limit… Also affects openssh
- CVE-2015-8325 The do_setup_env function in session.c in sshd in OpenSSH through 7.2p2, when the… Also affects openssh
- CVE-2016-1907 The ssh_packet_read_poll2 function in packet.c in OpenSSH before 7.1p2 allows remote… Also affects openssh
- CVE-2016-10009 Untrusted search path vulnerability in ssh-agent.c in ssh-agent in OpenSSH before 7.4… Also affects openssh
- CVE-2023-51385 In ssh in OpenSSH before 9.6, OS command injection might occur if a user name or host… Also affects openssh
- CVE-2021-41617 sshd in OpenSSH 6.2 through 8.x before 8.8, when certain non-default configurations are… Also affects openssh
- CVE-2016-10708 sshd in OpenSSH before 7.4 allows remote attackers to cause a denial of service (NULL… Also affects openssh
- CVE-2016-1908 The client in OpenSSH before 7.2 mishandles failed cookie generation for untrusted X11… Also affects openssh