{"id":4098,"date":"2014-04-28T01:26:35","date_gmt":"2014-04-27T17:26:35","guid":{"rendered":"https:\/\/www.icocean.com\/blog\/?p=4098"},"modified":"2014-04-28T01:26:35","modified_gmt":"2014-04-27T17:26:35","slug":"openssl-vulnerability-heartbleed","status":"publish","type":"post","link":"https:\/\/www.icocean.com\/blog\/?p=4098","title":{"rendered":"OpenSSL vulnerability &#8211; Heartbleed"},"content":{"rendered":"<p>A vulnerability in OpenSSL, nicknamed Heartbleed, was published in April 2014 <a class=\"wiki\" href=\"http:\/\/community.openvpn.net\/openvpn\/wiki\/heartbleed#ref1\">1<\/a>. OpenVPN uses OpenSSL as its crypto library by default and thus is affected too.<\/p>\n<h2 id=\"Whatdoesthismean\">What does this mean?<\/h2>\n<p>An attacker can trick OpenSSL into returning a part of your program memory. That memory contains your session keys (the keys used to encrypt your data), and usually your master secret key too. If your OpenVPN is or has been vulnerable to heartbleed you should consider your keys, and the traffic over the VPN tunnel, compromised.<\/p>\n<h2 id=\"AmIaffectedtoo\">Am I affected too?<\/h2>\n<p>Your OpenVPN is affected when your OpenVPN is linked against OpenSSL, versions 1.0.1 through 1.0.1f.<\/p>\n<h2 id=\"HasOpenVPNbeensuccessfullyexploited\">Has OpenVPN been successfully exploited?<\/h2>\n<p>This is very likely. On 16th April 2014 <a class=\"ext-link\" href=\"http:\/\/thread.gmane.org\/gmane.network.openvpn.user\/34784\"><span class=\"icon\">\u200b<\/span>a mail<\/a> was sent to openvpn-user list by Fredrik Str\u00f6mberg, who claimed the following:<!--more--><\/p>\n<pre class=\"wiki\">We have successfully extracted private key material multiple times\r\nfrom an OpenVPN server by exploiting the Heartbleed Bug. The material\r\nwe found was sufficient for us to recreate the private key and\r\nimpersonate the server.\r\n\r\n--- snip ---\r\n\r\n... you should assume that other teams with more nefarious purposes\r\nhave already created weaponized exploits for OpenVPN. Just to be\r\nclear, we don't intend to use this exploit ourselves. We merely\r\ndeveloped it to examine the practical impact on OpenVPN as part of\r\nour incident investigation.\r\n<\/pre>\n<p>More details in the <a class=\"ext-link\" href=\"http:\/\/thread.gmane.org\/gmane.network.openvpn.user\/34784\"><span class=\"icon\">\u200b<\/span>email thread<\/a>. The exploit has not yet been tested by anyone within the OpenVPN project, but we have to assume it is capable of doing what Fredrik claims.<\/p>\n<h2 id=\"HowdoIfixthis\">How do I fix this?<\/h2>\n<ol>\n<li>Update your OpenSSL library<\/li>\n<li>Revoke your old private keys<\/li>\n<li>Generate new private keys<\/li>\n<li>Create certificates for the new private keys<\/li>\n<\/ol>\n<h2 id=\"Isthisforclientsorservers\">Is this for clients or servers?<\/h2>\n<p>Both. Replace the keys for each peer that was active while linked against a vulnerable OpenSSL.<\/p>\n<h2 id=\"AreAndroidclientsaffectedtoo\">Are Android clients affected too?<\/h2>\n<p>Android shipped OpenSSL 1.0.1 as of 4.1, but disable heartbeats since 4.1.2. That means only Android 4.1(.0) and 4.1.1 are vulnerable. There are app available to check your own device like <a class=\"ext-link\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.lookout.heartbleeddetector\"><span class=\"icon\">\u200b<\/span>Heartbleed Detector<\/a>.<\/p>\n<p><a class=\"ext-link\" href=\"http:\/\/www.plai.de\/android\/ics-openvpn-0.6.13-with-openssl.apk\"><span class=\"icon\">\u200b<\/span>A special version of OpenVPN for Android including a copy of OpenSSL<\/a> can be used on affected devices. This however still leaves all other apps\/services on the device vulnerable.<\/p>\n<h2 id=\"WhataboutTunnelblickforMacOSX\">What about Tunnelblick for MacOS X<\/h2>\n<p>Old versions for Tunnelblick are affected, but fixed versions <a class=\"ext-link\" href=\"https:\/\/code.google.com\/p\/tunnelblick\/wiki\/News\"><span class=\"icon\">\u200b<\/span>have been released<\/a>.<\/p>\n<h2 id=\"WhataboutWindowsclients\">What about Windows clients?<\/h2>\n<p>All <a href=\"http:\/\/openvpn.net\/index.php\/download\/community-downloads.html\">official OpenVPN Windows client installers<\/a> are shipped with OpenSSL. However, only installer versions <em>2.3-rc2-I001<\/em> through <em>2.3.2-I003<\/em> ship a vulnerable version. Installer version <em>2.3.2-I004<\/em> fixes this vulnerability by bundling OpenSSL 1.0.1g. The fixed version can be downloaded from <a href=\"http:\/\/openvpn.net\/index.php\/open-source\/downloads.html\">here<\/a>.<\/p>\n<p>If you want to verify whether the version of OpenSSL in your OpenVPN installation is vulnerable, go to <em>C:\\Program Files\\OpenVPN\\bin<\/em> using Windows Explorer, right-click on <em>libeay32.dll<\/em>, click properties and check what <em>Details -&gt; Product Version<\/em> says.<\/p>\n<h2 id=\"IsAccessServeraffected\">Is Access Server affected?<\/h2>\n<p>Short answer: yes.<\/p>\n<p>All Access Server users are advised to <a class=\"ext-link\" href=\"https:\/\/openvpn.net\/index.php\/access-server\/overview.html\"><span class=\"icon\">\u200b<\/span>upgrade immediately<\/a> to Access Server 2.0.7. If you would like to patch the OpenSSL libraries for older versions of Access Server please <a class=\"ext-link\" href=\"http:\/\/swupdate.openvpn.org\/hb\/\"><span class=\"icon\">\u200b<\/span>download the libs<\/a> for your distro and copy them into \/usr\/local\/openvpn_as\/lib.<\/p>\n<p>For more information have a look at the OpenVPN Technologies&#8217; <a href=\"http:\/\/openvpn.net\/index.php\/access-server\/heartbleed.html\">official announcement<\/a>.<\/p>\n<h2 id=\"AreOpenVPNConnectclientsaffected\">Are OpenVPN Connect clients affected<\/h2>\n<p>It depends:<\/p>\n<ul>\n<li>The iOS and Android versions use PolarSSL and are not vulnerable<\/li>\n<li>Windows and MacOS X versions use OpenSSL and old client versions are vulnerable<\/li>\n<\/ul>\n<p>Access Server 2.0.7 includes OpenVPN Connect clients that have been fixed. If you have installed Access Server 2.0.6 and for whatever reason can&#8217;t upgrade to 2.0.7 you should get updated clients from <a class=\"ext-link\" href=\"http:\/\/swupdate.openvpn.org\/hb\/Clients\"><span class=\"icon\">\u200b<\/span>here<\/a>.<\/p>\n<p>For more information have a look at the OpenVPN Technologies&#8217; <a href=\"http:\/\/openvpn.net\/index.php\/access-server\/heartbleed.html\">official announcement<\/a>.<\/p>\n<h2 id=\"ArePolarSSLbuildsaffectedtoo\">Are PolarSSL builds affected too?<\/h2>\n<p>No. See <a class=\"wiki\" href=\"http:\/\/community.openvpn.net\/openvpn\/wiki\/heartbleed#ref2\">2<\/a>.<\/p>\n<h2 id=\"DoTLS-authkeysprotectmysetup\">Do TLS-auth keys protect my setup?<\/h2>\n<p>To some extent. You are strongly encouraged to use TLS-auth keys. In this scenario an attacker can not attack openvpn instances without the TLS-auth key. With a large user base, you should however consider the possibility of one (or more) of the OpenVPN instances being compromised. Such a compromised instance could attack other instances (including the server).<\/p>\n<p>[1] <span id=\"ref1\" class=\"wikianchor\"><\/span> <a class=\"ext-link\" href=\"http:\/\/heartbleed.com\/\"><span class=\"icon\">\u200b<\/span>http:\/\/heartbleed.com\/<\/a><\/p>\n<p>[2] <span id=\"ref2\" class=\"wikianchor\"><\/span> <a class=\"ext-link\" href=\"https:\/\/polarssl.org\/tech-updates\/security-advisories\/polarssl-security-advisory-2014-01\"><span class=\"icon\">\u200b<\/span>https:\/\/polarssl.org\/tech-updates\/security-advisories\/polarssl-security-advisory-2014-01<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A vulnerability in OpenSSL, nicknamed Heartbleed, was p <a href='https:\/\/www.icocean.com\/blog\/?p=4098' class='excerpt-more'>[&#8230;]<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[3935,1389],"class_list":["post-4098","post","type-post","status-publish","format-standard","hentry","category-4","tag-heartbleed","tag-openssl","category-4-id","post-seq-1","post-parity-odd","meta-position-corners","fix"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.icocean.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4098","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.icocean.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.icocean.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.icocean.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.icocean.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4098"}],"version-history":[{"count":1,"href":"https:\/\/www.icocean.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4098\/revisions"}],"predecessor-version":[{"id":4099,"href":"https:\/\/www.icocean.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4098\/revisions\/4099"}],"wp:attachment":[{"href":"https:\/\/www.icocean.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4098"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.icocean.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4098"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.icocean.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4098"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}