The maintainers of the OpenSSL library, one of the more widely deployed cryptographic libraries on the Web, have fixed a serious vulnerability that could have resulted in the revelation of 64 KB of memory to any client or server that was connected.
The details of the vulnerability, fixed in version 1.0.1g of OpenSSL, are somewhat scarce.
“A missing bounds check in the handling of the TLS heartbeat extension can be used to reveal up to 64kB of memory to a connected client or server,” the OpenSSL release notes for 1.0.1g say.
The OpenSSL library is deployed in a huge number of operating systems and applications, including a wide variety of Unix and Linux distributions, as well as OS X. Popular Web servers such as Nginx and Apache also are affected. Some major cloud-based applications and platforms, including CloudFlare. That company’s engineers implemented a fix for the OpenSSL vulnerability last week, before the details of the bug were disclosed.
“OpenSSL is the core cryptographic library CloudFlare uses for SSL/TLS connections. If your site is on CloudFlare, every connection made to the HTTPS version of your site goes through this library. As one of the largest deployments of OpenSSL on the Internet today, CloudFlare has a responsibility to be vigilant about fixing these types of bugs before they go public and attackers start exploiting them and putting our customers at risk,” Nick Sullivan of CloudFlare wrote in a blog post.
“We encourage everyone else running a server that uses OpenSSL to upgrade to version 1.0.1g to be protected from this vulnerability. For previous versions of OpenSSL, re-compiling with the OPENSSL_NO_HEARTBEATS flag enabled will protect against this vulnerability. OpenSSL 1.0.2 will be fixed in 1.0.2-beta2.”
The folks at Codenomicon have put together an FAQ on the bug, which they’ve dubbed the Heartbleed vulnerability. Their explanation says that the flaw could enable anyone on the Internet to read the memory of a machine that’s protected by a vulnerable version of the library.
“The Heartbleed bug allows anyone on the Internet to read the memory of the systems protected by the vulnerable versions of the OpenSSL software. This compromises the secret keys used to identify the service providers and to encrypt the traffic, the names and passwords of the users and the actual content. This allows attackers to eavesdrop communications, steal data directly from the services and users and to impersonate services and users,” the description says.
“You are likely to be affected either directly or indirectly. OpenSSL is the most popular open source cryptographic library and TLS (transport layer security) implementation used to encrypt traffic on the Internet. Your popular social site, your company’s site, commerce site, hobby site, site you install software from or even sites run by your government might be using vulnerable OpenSSL. Many of online services use TLS to both to identify themselves to you and to protect your privacy and transactions. You might have networked appliances with logins secured by this buggy implementation of the TLS. Furthermore you might have client side software on your computer that could expose the data from your computer if you connect to compromised services.”
OpenSSL 1.0.1g also includes a fix that addresses a certain variety of side-channel attack.
“The Montgomery ladder implementation in OpenSSL through 1.0.0l does not ensure that certain swap operations have a constant-time behavior, which makes it easier for local users to obtain ECDSA nonces via a FLUSH+RELOAD cache side-channel attack,” the CVE entry for the bug says.