[svlug] How much trouble are we in FAQ (Heartbleed)
Rick Moen
rick at linuxmafia.com
Wed Apr 9 23:13:26 PDT 2014
Not long ago, on a mailing list very close, I wrote:
> Q: But Debian and Ubuntu use GnuTLS quite a bit, don't they?
> A: Yes, because of OpenSSL's problems with licence compatibility,
> mostly. A shame, isn't it?
Talk about 'between the Devil and the deep blue sea', I'm hard pressed
to say which of the two lib collections is truly worse, but look at this
from a Debian system:
$ ldd $(which wget) | grep libssl
libssl.so.0.9.8 => /usr/lib/i686/cmov/libssl.so.0.9.8 (0xb7692000)
$
Hullo, /usr/bin/wget is compiled against libssl, which is the half of
OpenSSL that is concerned with _transport_ (TLS). The other half of
OpenSSL is the (uninvolved) libcrypto, a collection of sub-libraries
furnishing fundamental crypto routines, e.g., for key generation.
> Q: Hey, OpenSSH uses OpenSSL. Is all my ssh traffic in danger, too?
> A: No. OpenSSH uses only OpenSSL's key-generation code, but most
> particularly does not use its TLS code.
The reason OpenSSH isn't affected by Heartbleed is that it
makes lib calls _only_ to libcrypto, for things like ssh key-generation
functions, and not to libssl.
Anyway, this means that Debian's wget is a fine example of a _client_
side program threatened by the Heartbeat bug -- iff you have a vulnerable
version of OpenSSL installed. (The Debian system shown above does _not_
have a vulnerable lib version.)
'What about Debian's /usr/bin/curl?', I hear some of you asking.
$ ldd $(which curl) | grep libcrypto
libcrypto.so.0.9.8 => /usr/lib/i686/cmov/libcrypto.so.0.9.8 (0xb745d000)
$ ldd $(which curl) | grep libssl
libssl.so.0.9.8 => /usr/lib/i686/cmov/libssl.so.0.9.8 (0xb75b6000)
$
It's liked to OpenSSL's libcrypto _and_ libssl. Just to ensure that you
get the worst of both worlds, though:
$ ldd $(which curl) | grep libgnutls
libgnutls.so.26 => /usr/lib/libgnutls.so.26 (0xb733e000)
$
Swell, Debian's /usr/bin/curl is _also_ linked against the horribly
buggy GnuTLS libraries. Whee!
Which, by the way, already has a canned exploit against it, in
consequence:
https://twitter.com/hackerfantastic/status/454024616550215681/photo/1
Anyway, not only are the consequences of this bug on _servers_ profound
for ordinary grunt users -- but also, it is actually exploitable on
user-side software, on account of dependies some client-side user
software has on OpenSSL versions that _may_ use OpenSSL 1.0.1 through
1.0.1f libraries possessing the buggy Heartbeat code. Thus my point.
More information about the svlug
mailing list