The OpenSSL Project has released updates to patch several vulnerabilities in the crypto library, including a high severity TLS issue that can be exploited to crack encrypted communications and steal potentially sensitive data.
A team of researchers has published a paper on “DROWN” (Decrypting RSA with Obsolete and Weakened eNcryption), a cross-protocol attack method that involves SSLv2, an old version of the protocol that is still supported by many servers.
The vulnerability, tracked as CVE-2016-0800, is believed to affect a quarter of the top one million HTTPS domains and one-third of all HTTPS websites.
“A typical scenario requires the attacker to observe 1,000 TLS handshakes, then initiate 40,000 SSLv2 connections and perform 2^50 offline work to decrypt a 2048-bit RSA TLS ciphertext,” researchers explained in their paper. “We implemented the attack and can decrypt a TLS 1.2 handshake using 2048-bit RSA in under 8 hours using Amazon EC2, at a cost of $440.”
A cheaper version of the attack, which can be used to decrypt a TLS ciphertext in roughly one minute on a fast CPU, involves a couple of OpenSSL vulnerabilities: CVE-2015-3197, which was fixed in OpenSSL 1.0.1r and 1.0.2f, and CVE-2016-0703, a newly discovered flaw that was unknowingly patched in March 2015.
According to experts, a majority of servers vulnerable to DROWN attacks are also affected by these OpenSSL bugs. An Internet scan has shown that more than 2.3 million HTTPS servers with browser-trusted certificates are vulnerable.
“This form of the attack is fast enough to allow an online man-in-the-middle (MitM) style of attack, where the attacker can impersonate a vulnerable server to the victim client. Among other advantages, such an attacker can force the client and server to use RSA key exchange (and can then decrypt the connection) even if they would normally prefer a different cipher,” researchers explained. “This lets the attacker target and break connections between modern browsers and servers that prefer perfect-forward-secret key exchange methods, such as DHE and ECDH.”
After being notified by researchers, the OpenSSL Project released OpenSSL 1.0.2g and 1.0.1s, which disable SSLv2 by default at build-time and ensure that it’s impossible to configure a TLS server so that it’s vulnerable to DROWN attacks.
Microsoft IIS and the Network Security Services (NSS) library have SSLv2 support disabled by default. Researchers have issued a series of recommendations for Apache, Postfix and Nginx users.
In addition to patching the DROWN issue, the OpenSSL Project addressed several low and medium severity vulnerabilities with the release of versions 1.0.2g and 1.0.1s, including a double-free issue in DSA code (CVE-2016-0705), a memory leak in SRP database lookups (CVE-2016-0798), BN_hex2bn/BN_dec2bn function NULL pointer corruption flaws (CVE-2016-0797), memory issues in BIO_*printf functions (CVE-2016-0799), and a side channel attack on modular exponentiation (CVE-2016-0702).