libssh and libssh2: Multiple vulnerabilities — GLSA 201606-12

Multiple vulnerabilities have been found in libssh and libssh2, the worst of which allows remote attackers to cause Denial of Service.

Affected packages

net-libs/libssh on all architectures
Affected versions < 0.7.3
Unaffected versions >= 0.7.3
net-libs/libssh2 on all architectures
Affected versions < 1.7.0
Unaffected versions >= 1.7.0

Background

libssh is a mulitplatform C library implementing the SSHv2 and SSHv1 protocol on client and server side.

Description

libssh and libssh2 both have a bits/bytes confusion bug and generate an abnormaly short ephemeral secret for the diffie-hellman-group1 and diffie-hellman-group14 key exchange methods. The resulting secret is 128 bits long, instead of the recommended sizes of 1024 and 2048 bits respectively.

Additionally, a double free on dangling pointers in initial key exchange packets within libssh could leave dangling pointers in the session crypto structures. It is possible to send a malicious kexinit package to eventually cause a server to do a double-free before this fix. This could be used for a Denial of Service attack.

Impact

Remote attackers may gain access to confidential information due to the short keysize generated by libssh and libssh2, or cause a Denial of Service condition.

Workaround

There is no known workaround at this time.

Resolution

All libssh users should upgrade to the latest version:

 # emerge --sync
 # emerge --ask --oneshot --verbose ">=net-libs/libssh-0.7.3"
 

All libssh2 users should upgrade to the latest version:

 # emerge --sync
 # emerge --ask --oneshot --verbose ">=net-libs/libssh2-1.7.0"
 

References

Release date
June 26, 2016

Latest revision
June 26, 2016: 1

Severity
normal

Exploitable
remote

Bugzilla entries