{"vuid":"VU#257823","idnumber":"257823","name":"OpenSSL re-uses unsafe prime numbers in Diffie-Hellman protocol","keywords":["dh","prime","ssl","tls"],"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.","clean_desc":"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.","resolution":"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:","workarounds":"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.","sysaffected":"","thanks":"OpenSSL credits \nAntonio Sanso\n of Adobe for reporting CVE-2016-0701, and Nimrod Aviram and \nSebastian Schinzel\n for reporting CVE-2015-3197.","author":"This document was written by Garret Wassermann.","public":["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"],"cveids":["CVE-2016-0701","CVE-2015-3197"],"certadvisory":"","uscerttechnicalalert":null,"datecreated":"2016-01-28T07:27:11Z","publicdate":"2016-01-28T00:00:00Z","datefirstpublished":"2016-01-28T17:41:20Z","dateupdated":"2016-01-29T18:01:00Z","revision":54,"vrda_d1_directreport":"0","vrda_d1_population":"4","vrda_d1_impact":"4","cam_widelyknown":"0","cam_exploitation":"0","cam_internetinfrastructure":"0","cam_population":"0","cam_impact":"0","cam_easeofexploitation":"0","cam_attackeraccessrequired":"0","cam_scorecurrent":"0","cam_scorecurrentwidelyknown":"0","cam_scorecurrentwidelyknownexploited":"0","ipprotocol":"","cvss_accessvector":"N","cvss_accesscomplexity":"M","cvss_authentication":null,"cvss_confidentialityimpact":"C","cvss_integrityimpact":"C","cvss_availabilityimpact":"N","cvss_exploitablity":null,"cvss_remediationlevel":"OF","cvss_reportconfidence":"C","cvss_collateraldamagepotential":"ND","cvss_targetdistribution":"H","cvss_securityrequirementscr":"ND","cvss_securityrequirementsir":"ND","cvss_securityrequirementsar":"ND","cvss_basescore":"8.8","cvss_basevector":"AV:N/AC:M/Au:N/C:C/I:C/A:N","cvss_temporalscore":"6.9","cvss_environmentalscore":"6.8687510697792","cvss_environmentalvector":"CDP:ND/TD:H/CR:ND/IR:ND/AR:ND","metric":0.0,"vulnote":null}