Vulnerability Note VU#257823
OpenSSL re-uses unsafe prime numbers in Diffie-Hellman protocol
Original Release date: 28 Jan 2016 | Last revised: 29 Jan 2016

Overview
OpenSSL may generate unsafe primes for use in the Diffie-Hellman protocol, which may lead to disclosure of enough information for an attacker to recover the private encryption key.

Description
CWE-325: Missing Required Cryptographic Step – CVE-2016-0701
OpenSSL 1.0.2 introduced the ability to generate X9.42 style parameter files as required by RFC 5114. The primes generated in this mode may be ‘unsafe’, enabling generation of groups containing small subgroups, which may allow for cryptographic attacks that may recover the key. OpenSSL prior to 1.0.2f did not properly check for this possibility.

Furthermore, OpenSSL prior to 1.0.2f will by default reuse this number for the life of the process. Such a number, particularly if re-used, severely weakens applications of the Diffie-Hellman protocol such as TLS, allowing an attacker in some scenarios to possibly determine the Diffie-Hellman private exponent and decrypt the underlying traffic.

The researcher states in a blog post however that this attack "requires that the attacker complete multiple handshakes in which the peer (OpenSSL in this case) uses the same private DH exponent."

CWE-757: Selection of Less-Secure Algorithm During Negotiation (‘Algorithm Downgrade’) – CVE-2015-3197

According to OpenSSL, "A malicious client can negotiate SSLv2 ciphers that have been disabled on the server and complete SSLv2 handshakes even if all SSLv2 ciphers have been disabled, provided that the SSLv2 protocol was not also disabled via SSL_OP_NO_SSLv2."

For more information, please see OpenSSL’s security advisory.

The CVSS score below is based on CVE-2016-0701.

Impact
A malicious remote user may be able to learn sensitive information by obtaining the decryption key. A remote attacker may also be able to negotiate for weak SSLv2 ciphers even if the SSLv2 ciphers have been disabled, allowing for further known attacks.

Solution
Apply an update

OpenSSL version 1.0.2f and 1.0.1r have been released to address these issues. Affected users should update as soon as possible.

Users may also consider the following mitigations:
Enable SSL_OP_SINGLE_DH_USE option

OpenSSL prior to version 1.0.2f may enable the SSL_OP_SINGLE_DH_USE option to prevent reuse of primes in the Diffie-Hellman protocol. This may help mitigate attacks against use of weak primes.

Vendor Information (Learn More)

VendorStatusDate NotifiedDate UpdatedOpenSSLAffected-28 Jan 2016
GoogleUnknown-28 Jan 2016
LibreSSLUnknown-28 Jan 2016If you are a vendor and your product is affected, let
us know.

CVSS Metrics (Learn More)

Group
Score
Vector

Base
8.8
AV:N/AC:M/Au:N/C:C/I:C/A:N

Temporal
6.9
E:POC/RL:OF/RC:C

Environmental
6.9
CDP:ND/TD:H/CR:ND/IR:ND/AR:ND

References

https://www.openssl.org/news/vulnerabilities.html#y2016
https://mta.openssl.org/pipermail/openssl-announce/2016-January/000061.html
http://intothesymmetry.blogspot.com/2016/01/openssl-key-recovery-attack-on-dh-small.html
http://tools.ietf.org/html/rfc5114
http://webstore.ansi.org/RecordDetail.aspx?sku=ANSI+X9.42-2003+%28R2013%29

Credit

OpenSSL credits Antonio Sanso of Adobe for reporting CVE-2016-0701, and Nimrod Aviram and Sebastian Schinzel for reporting CVE-2015-3197.
This document was written by Garret Wassermann.

Other Information

CVE IDs:
CVE-2016-0701
CVE-2015-3197

Date Public:
28 Jan 2016

Date First Published:
28 Jan 2016

Date Last Updated:
29 Jan 2016

Document Revision:
52

FeedbackIf you have feedback, comments, or additional information about this vulnerability, please send us email.