Does the heartbleed vulnerability affect clients as severely?

All we need is an easy explanation of the problem, so here it is.

If I have a web crawler (using a non-patched version of OpenSSL) that can be coaxed to connect to an evil https-site, can they get everything from my process memory? To attack a server you can keep reconnecting to get more 64kb blocks (if I understand correctly), but can a client be forced to reconnect many times, to get more blocks?

How to solve :

I know you bored from this bug, So we are here to help you! Take a deep breath and look at the explanation of your problem. We have many solutions to this problem, But we recommend you to use the first method because it is tested & true method that will 100% work for you.

Method 1

Yes, clients are vulnerable to attack.

The initial security notices indicated that a malicious server can use the Heartbleed vulnerability to compromise an affected client. Sources below (all emphasis is mine).

Since then, proof of concept attacks have validated this position – it is utterly certain that clients running apps that use OpenSSL for TLS connections may be vulnerable.

heartbleed.com:

…When [Heartbleed] is
exploited it leads to the leak of memory contents from the server to
the client
and from the client to the server.

Ubuntu Security Notice USN-2165-1:

An attacker could use this issue to obtain up to 64k of memory
contents from the client or server

RFC6520:

5. Use Cases
Each endpoint sends HeartbeatRequest messages…

OpenSSL Security Advisory 07 Apr 2014:

A missing bounds check in the handling of the TLS heartbeat extension
can be used to reveal up to 64k of memory to a connected client or
server
.


Client applications reported to be vulnerable (Credit to @Lekensteyn except where otherwise stated):

  • MariaDB 5.5.36
  • wget 1.15 (leaks memory of earlier connections and own state)
  • curl 7.36.0
  • git 1.9.1 (tested clone / push, leaks not much)
  • nginx 1.4.7 (in proxy mode, leaks memory of previous requests)
  • links 2.8 (leaks contents of previous visits!)
  • All KDE applications using KIO (Dolphin, Konqueror).
  • Exim mailserver
  • OwnCloud Version Unknown | Source

Note that some of these programs do not use OpenSSL. For example, curl can be built with Mozilla NSS and Exim can be built with GnuTLS (as is done on Debian).


Other common clients:

  • Windows (all versions): Probably unaffected (uses SChannel/SSPI), but attention should be paid to the TLS implementations in individual applications. For example, Cygwin users should update their OpenSSL packages.

  • OSX and iOS (all versions): Probably unaffected. SANS implies it may be vulnerable by saying "OS X Mavericks has NO PATCH available", but others note that OSX 10.9 ships with OpenSSL 0.9.8y, which is not affected. Apple says: "OpenSSL libraries in OS X are deprecated, and OpenSSL has never been provided as part of iOS"

  • Chrome (all platforms except Android): Probably unaffected (uses NSS)

  • Chrome on Android: 4.1.1 may be affected (uses OpenSSL). Source. 4.1.2 should be unaffected, as it is compiled with heartbeats disabled. Source.

  • Mozilla products (e.g. Firefox, Thunderbird, SeaMonkey, Fennec): Probably unaffected, all use NSS

Method 2

Yes it affects clients as severly, as stated on the heartbleed website:

Furthermore you might have client side software on your computer that
could expose the data from your computer if you connect to compromised
services.

Of course, and this is not just the case for this vulnerability or for a particular client, the client still has to initiate the connection to be attacked. In no way this vulnerability allows an attacker to initiate a connection to your web crawler and exploit the vulnerability.

In your case however, as you have a direct control over the OpenSSL client code (and I suppose this is the case based on your post), you want to ensure that your version of OpenSSL doesn’t come with the Heartbeat option, and if it does, to remove it. In order to do so, you can:

  • display which specific options were used to compile your version of
    OpenSSL :

    openssl version -o

  • or display every information from your OpenSSL version :

    openssl version -a

  • compile OpenSSL without Heartbeat support, by simply using this flag at compile time :

    -DOPENSSL_NO_HEARTBEATS

Once this is done, or if your version of OpenSSL didn’t include it initially, then you are not vulnerable.

Edit: Another method is to retrieve your OpenSSL version with:

openssl version

And compare it to the list of affected versions available on heartbleed :

  • OpenSSL 1.0.1 through 1.0.1f (inclusive) are vulnerable
  • OpenSSL 1.0.1g is NOT vulnerable
  • OpenSSL 1.0.0 branch is NOT vulnerable
  • OpenSSL 0.9.8 branch is NOT vulnerable

Note: Use and implement method 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply