Security expert Darek Tytko from securitum.pl has discovered a username enumeration vulnerability in the OpenSSH client. The flaw tracked as CVE-2018-15473 affects all versions of the software that was released since 1999. The vulnerability could be exploited by a remote attacker to guess the usernames registered on an OpenSSH server.
OpenSSH maintainers have now released a security fix, but since the OpenSSH client is included in a broad range of software applications many of them could remain vulnerable for a long time.
Researchers from Qualys have published a detailed analysis of the vulnerability once discovered that the bug was fixed.
The flaw could potentially impact billion of devices using the vulnerable software.
Let’s see in detail how attackers can trigger the flaw.
The attacker tries to authenticate on an OpenSSH endpoint using a malformed authentication request (i.e. a truncated packet).
A vulnerable OpenSSH server, in turn, would respond in two different ways.
If the username included in the malformed authentication request does not exist, the server responds with authentication failure reply, otherwise, the server closes the connection without a reply.
“The attacker can try to authenticate a user with a malformed packet (for example, a truncated packet), and:
“We believe that this issue warrants a CVE; it affects all operating systems, all OpenSSH versions (we went back as far as OpenSSH 2.3.0, released in November 2000), and is easier to exploit than previous OpenSSH username enumerations (which were all timing attacks):”
The flaw could allow an attacker to guess valid usernames registered on an SSH server, then to launch brute-force attacks to guess the password.
Open SSH versions 1:6.7p1-1 and 1:7.7p1-1— and the 1:7.7p1-4 unstable branch have addressed the flaw.
Proof-of-concept codes for the vulnerability are already available online: