[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