The branch master has been updated via 77d5a49c12876ed984fc15225b90c5320ac145d6 (commit) from c141014db4abc964a8247f0314a368f494df5e23 (commit)
- Log ----------------------------------------------------------------- commit 77d5a49c12876ed984fc15225b90c5320ac145d6 Author: Matt Caswell <m...@openssl.org> Date: Tue Mar 1 13:52:30 2016 +0000 Updates for the new release ----------------------------------------------------------------------- Summary of changes: news/newsflash.txt | 2 + news/secadv/20160301.txt | 286 +++++++++++++++++++++++++++ news/vulnerabilities.xml | 505 ++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 792 insertions(+), 1 deletion(-) create mode 100644 news/secadv/20160301.txt diff --git a/news/newsflash.txt b/news/newsflash.txt index 3cdf185..9cbb1f2 100644 --- a/news/newsflash.txt +++ b/news/newsflash.txt @@ -4,6 +4,8 @@ # Format is two fields, colon-separated; the first line is the column # headings. URL paths must all be absolute. Date: Item +01-Mar-2016: OpenSSL 1.0.2g is now available, including bug and security fixes +01-Mar-2016: OpenSSL 1.0.1s is now available, including bug and security fixes 25-Feb-2016: OpenSSL 1.0.2g and 1.0.1s <a href="https://mta.openssl.org/pipermail/openssl-announce/2016-February/000063.html">security releases due 1st Mar 2016</a> 15-Feb-2016: Alpha 3 of OpenSSL 1.1.0 is now available: please download and test it 28-Jan-2016: <a href="/news/secadv/20160128.txt">Security Advisory</a>: two security fixes diff --git a/news/secadv/20160301.txt b/news/secadv/20160301.txt new file mode 100644 index 0000000..719351b --- /dev/null +++ b/news/secadv/20160301.txt @@ -0,0 +1,286 @@ +OpenSSL Security Advisory [1st March 2016] +========================================= + +NOTE: With this update, OpenSSL is disabling the SSLv2 protocol by default, as +well as removing SSLv2 EXPORT ciphers. We strongly advise against the use of +SSLv2 due not only to the issues described below, but to the other known +deficiencies in the protocol as described at +https://tools.ietf.org/html/rfc6176 + + +Cross-protocol attack on TLS using SSLv2 (DROWN) (CVE-2016-0800) +================================================================ + +Severity: High + +A cross-protocol attack was discovered that could lead to decryption of TLS +sessions by using a server supporting SSLv2 and EXPORT cipher suites as a +Bleichenbacher RSA padding oracle. Note that traffic between clients and +non-vulnerable servers can be decrypted provided another server supporting +SSLv2 and EXPORT ciphers (even with a different protocol such as SMTP, IMAP or +POP) shares the RSA keys of the non-vulnerable server. This vulnerability is +known as DROWN (CVE-2016-0800). + +Recovering one session key requires the attacker to perform approximately 2^50 +computation, as well as thousands of connections to the affected server. A more +efficient variant of the DROWN attack exists against unpatched OpenSSL servers +using versions that predate 1.0.2a, 1.0.1m, 1.0.0r and 0.9.8zf released on +19/Mar/2015 (see CVE-2016-0703 below). + +Users can avoid this issue by disabling the SSLv2 protocol in all their SSL/TLS +servers, if they've not done so already. Disabling all SSLv2 ciphers is also +sufficient, provided the patches for CVE-2015-3197 (fixed in OpenSSL 1.0.1r and +1.0.2f) have been deployed. Servers that have not disabled the SSLv2 protocol, +and are not patched for CVE-2015-3197 are vulnerable to DROWN even if all SSLv2 +ciphers are nominally disabled, because malicious clients can force the use of +SSLv2 with EXPORT ciphers. + +OpenSSL 1.0.2g and 1.0.1s deploy the following mitigation against DROWN: + +SSLv2 is now by default disabled at build-time. Builds that are not configured +with "enable-ssl2" will not support SSLv2. Even if "enable-ssl2" is used, +users who want to negotiate SSLv2 via the version-flexible SSLv23_method() will +need to explicitly call either of: + + SSL_CTX_clear_options(ctx, SSL_OP_NO_SSLv2); + or + SSL_clear_options(ssl, SSL_OP_NO_SSLv2); + +as appropriate. Even if either of those is used, or the application explicitly +uses the version-specific SSLv2_method() or its client or server variants, +SSLv2 ciphers vulnerable to exhaustive search key recovery have been removed. +Specifically, the SSLv2 40-bit EXPORT ciphers, and SSLv2 56-bit DES are no +longer available. + +In addition, weak ciphers in SSLv3 and up are now disabled in default builds of +OpenSSL. Builds that are not configured with "enable-weak-ssl-ciphers" will +not provide any "EXPORT" or "LOW" strength ciphers. + +OpenSSL 1.0.2 users should upgrade to 1.0.2g +OpenSSL 1.0.1 users should upgrade to 1.0.1s + +This issue was reported to OpenSSL on December 29th 2015 by Nimrod Aviram and +Sebastian Schinzel. The fix was developed by Viktor Dukhovni and Matt Caswell +of OpenSSL. + + +Double-free in DSA code (CVE-2016-0705) +======================================= + +Severity: Low + +A double free bug was discovered when OpenSSL parses malformed DSA private keys +and could lead to a DoS attack or memory corruption for applications that +receive DSA private keys from untrusted sources. This scenario is considered +rare. + +This issue affects OpenSSL versions 1.0.2 and 1.0.1. + +OpenSSL 1.0.2 users should upgrade to 1.0.2g +OpenSSL 1.0.1 users should upgrade to 1.0.1s + +This issue was reported to OpenSSL on February 7th 2016 by Adam Langley +(Google/BoringSSL) using libFuzzer. The fix was developed by Dr Stephen Henson +of OpenSSL. + + +Memory leak in SRP database lookups (CVE-2016-0798) +=================================================== + +Severity: Low + +The SRP user database lookup method SRP_VBASE_get_by_user had +confusing memory management semantics; the returned pointer was sometimes newly +allocated, and sometimes owned by the callee. The calling code has no way of +distinguishing these two cases. + +Specifically, SRP servers that configure a secret seed to hide valid +login information are vulnerable to a memory leak: an attacker +connecting with an invalid username can cause a memory leak of around +300 bytes per connection. Servers that do not configure SRP, or +configure SRP but do not configure a seed are not vulnerable. + +In Apache, the seed directive is known as SSLSRPUnknownUserSeed. + +To mitigate the memory leak, the seed handling in +SRP_VBASE_get_by_user is now disabled even if the user has configured +a seed. Applications are advised to migrate to +SRP_VBASE_get1_by_user. However, note that OpenSSL makes no strong +guarantees about the indistinguishability of valid and invalid +logins. In particular, computations are currently not carried out in +constant time. + +This issue affects OpenSSL versions 1.0.2 and 1.0.1. + +OpenSSL 1.0.2 users should upgrade to 1.0.2g +OpenSSL 1.0.1 users should upgrade to 1.0.1s + +This issue was discovered on February 23rd 2016 by Emilia Käsper of +the OpenSSL development team. Emilia Käsper also developed the fix. + + +BN_hex2bn/BN_dec2bn NULL pointer deref/heap corruption (CVE-2016-0797) +====================================================================== + +Severity: Low + +In the BN_hex2bn function the number of hex digits is calculated using an int +value |i|. Later |bn_expand| is called with a value of |i * 4|. For large values +of |i| this can result in |bn_expand| not allocating any memory because |i * 4| +is negative. This can leave the internal BIGNUM data field as NULL leading to a +subsequent NULL ptr deref. For very large values of |i|, the calculation |i * 4| +could be a positive value smaller than |i|. In this case memory is allocated to +the internal BIGNUM data field, but it is insufficiently sized leading to heap +corruption. A similar issue exists in BN_dec2bn. This could have security +consequences if BN_hex2bn/BN_dec2bn is ever called by user applications with +very large untrusted hex/dec data. This is anticipated to be a rare occurrence. + +All OpenSSL internal usage of these functions use data that is not expected to +be untrusted, e.g. config file data or application command line arguments. If +user developed applications generate config file data based on untrusted data +then it is possible that this could also lead to security consequences. This is +also anticipated to be rare. + +This issue affects OpenSSL versions 1.0.2 and 1.0.1. + +OpenSSL 1.0.2 users should upgrade to 1.0.2g +OpenSSL 1.0.1 users should upgrade to 1.0.1s + +This issue was reported to OpenSSL on February 19th 2016 by Guido Vranken. The +fix was developed by Matt Caswell of the OpenSSL development team. + +Fix memory issues in BIO_*printf functions (CVE-2016-0799) +========================================================== + +Severity: Low + +The internal |fmtstr| function used in processing a "%s" format string in the +BIO_*printf functions could overflow while calculating the length of a string +and cause an OOB read when printing very long strings. + +Additionally the internal |doapr_outch| function can attempt to write to an OOB +memory location (at an offset from the NULL pointer) in the event of a memory +allocation failure. In 1.0.2 and below this could be caused where the size of a +buffer to be allocated is greater than INT_MAX. E.g. this could be in processing +a very long "%s" format string. Memory leaks can also occur. + +The first issue may mask the second issue dependent on compiler behaviour. +These problems could enable attacks where large amounts of untrusted data is +passed to the BIO_*printf functions. If applications use these functions in this +way then they could be vulnerable. OpenSSL itself uses these functions when +printing out human-readable dumps of ASN.1 data. Therefore applications that +print this data could be vulnerable if the data is from untrusted sources. +OpenSSL command line applications could also be vulnerable where they print out +ASN.1 data, or if untrusted data is passed as command line arguments. + +Libssl is not considered directly vulnerable. Additionally certificates etc +received via remote connections via libssl are also unlikely to be able to +trigger these issues because of message size limits enforced within libssl. + +This issue affects OpenSSL versions 1.0.2 and 1.0.1. + +OpenSSL 1.0.2 users should upgrade to 1.0.2g +OpenSSL 1.0.1 users should upgrade to 1.0.1s + +This issue was reported to OpenSSL on February 23rd by Guido Vranken. The +fix was developed by Matt Caswell of the OpenSSL development team. + +Side channel attack on modular exponentiation (CVE-2016-0702) +============================================================= + +Severity: Low + +A side-channel attack was found which makes use of cache-bank conflicts on the +Intel Sandy-Bridge microarchitecture which could lead to the recovery of RSA +keys. The ability to exploit this issue is limited as it relies on an attacker +who has control of code in a thread running on the same hyper-threaded core as +the victim thread which is performing decryptions. + +This issue affects OpenSSL versions 1.0.2 and 1.0.1. + +OpenSSL 1.0.2 users should upgrade to 1.0.2g +OpenSSL 1.0.1 users should upgrade to 1.0.1s + +This issue was reported to OpenSSL on Jan 8th 2016 by Yuval Yarom, The +University of Adelaide and NICTA, Daniel Genkin, Technion and Tel Aviv +University, and Nadia Heninger, University of Pennsylvania with more +information at http://cachebleed.info. The fix was developed by Andy Polyakov +of OpenSSL. + + +Divide-and-conquer session key recovery in SSLv2 (CVE-2016-0703) +================================================================ + +Severity: High + +This issue only affected versions of OpenSSL prior to March 19th 2015 at which +time the code was refactored to address vulnerability CVE-2015-0293. + +s2_srvr.c did not enforce that clear-key-length is 0 for non-export ciphers. If +clear-key bytes are present for these ciphers, they *displace* encrypted-key +bytes. This leads to an efficient divide-and-conquer key recovery attack: if an +eavesdropper has intercepted an SSLv2 handshake, they can use the server as an +oracle to determine the SSLv2 master-key, using only 16 connections to the +server and negligible computation. + +More importantly, this leads to a more efficient version of DROWN that is +effective against non-export ciphersuites, and requires no significant +computation. + +This issue affected OpenSSL versions 1.0.2, 1.0.1l, 1.0.0q, 0.9.8ze and all +earlier versions. It was fixed in OpenSSL 1.0.2a, 1.0.1m, 1.0.0r and 0.9.8zf +(released March 19th 2015). + +This issue was reported to OpenSSL on February 10th 2016 by David Adrian and J. +Alex Halderman of the University of Michigan. The underlying defect had by +then already been fixed by Emilia Käsper of OpenSSL on March 4th 2015. The fix +for this issue can be identified by commits ae50d827 (1.0.2a), cd56a08d +(1.0.1m), 1a08063 (1.0.0r) and 65c588c (0.9.8zf). + + +Bleichenbacher oracle in SSLv2 (CVE-2016-0704) +============================================== + +Severity: Moderate + +This issue only affected versions of OpenSSL prior to March 19th 2015 at which +time the code was refactored to address the vulnerability CVE-2015-0293. + +s2_srvr.c overwrite the wrong bytes in the master-key when applying +Bleichenbacher protection for export cipher suites. This provides a +Bleichenbacher oracle, and could potentially allow more efficient variants of +the DROWN attack. + +This issue affected OpenSSL versions 1.0.2, 1.0.1l, 1.0.0q, 0.9.8ze and all +earlier versions. It was fixed in OpenSSL 1.0.2a, 1.0.1m, 1.0.0r and 0.9.8zf +(released March 19th 2015). + +This issue was reported to OpenSSL on February 10th 2016 by David Adrian and J. +Alex Halderman of the University of Michigan. The underlying defect had by +then already been fixed by Emilia Käsper of OpenSSL on March 4th 2015. The fix +for this issue can be identified by commits ae50d827 (1.0.2a), cd56a08d +(1.0.1m), 1a08063 (1.0.0r) and 65c588c (0.9.8zf). + +Note +==== + +As per our previous announcements and our Release Strategy +(https://www.openssl.org/policies/releasestrat.html), support for OpenSSL +version 1.0.1 will cease on 31st December 2016. No security updates for that +version will be provided after that date. Users of 1.0.1 are advised to +upgrade. + +Support for versions 0.9.8 and 1.0.0 ended on 31st December 2015. Those +versions are no longer receiving security updates. + +References +========== + +URL for this Security Advisory: +https://www.openssl.org/news/secadv/20160301.txt + +Note: the online version of the advisory may be updated with additional details +over time. + +For details of OpenSSL severity classifications please see: +https://www.openssl.org/policies/secpolicy.html diff --git a/news/vulnerabilities.xml b/news/vulnerabilities.xml index fb59f52..4465289 100644 --- a/news/vulnerabilities.xml +++ b/news/vulnerabilities.xml @@ -5,7 +5,510 @@ 1.0.0 on 20100329 --> -<security updated="20160128"> +<security updated="20160301"> + <issue public="20160301"> + <impact severity="High"/> + <cve name="2016-0800"/> + <affects base="1.0.1" version="1.0.1"/> + <affects base="1.0.1" version="1.0.1a"/> + <affects base="1.0.1" version="1.0.1b"/> + <affects base="1.0.1" version="1.0.1c"/> + <affects base="1.0.1" version="1.0.1d"/> + <affects base="1.0.1" version="1.0.1e"/> + <affects base="1.0.1" version="1.0.1f"/> + <affects base="1.0.1" version="1.0.1g"/> + <affects base="1.0.1" version="1.0.1h"/> + <affects base="1.0.1" version="1.0.1i"/> + <affects base="1.0.1" version="1.0.1j"/> + <affects base="1.0.1" version="1.0.1k"/> + <affects base="1.0.1" version="1.0.1l"/> + <affects base="1.0.1" version="1.0.1m"/> + <affects base="1.0.1" version="1.0.1n"/> + <affects base="1.0.1" version="1.0.1o"/> + <affects base="1.0.1" version="1.0.1p"/> + <affects base="1.0.1" version="1.0.1q"/> + <affects base="1.0.1" version="1.0.1r"/> + <affects base="1.0.2" version="1.0.2"/> + <affects base="1.0.2" version="1.0.2a"/> + <affects base="1.0.2" version="1.0.2b"/> + <affects base="1.0.2" version="1.0.2c"/> + <affects base="1.0.2" version="1.0.2d"/> + <affects base="1.0.2" version="1.0.2e"/> + <affects base="1.0.2" version="1.0.2f"/> + <fixed base="1.0.1" version="1.0.1s" date="20160301"/> + <fixed base="1.0.2" version="1.0.2g" date="20160301"/> + + <description> + A cross-protocol attack was discovered that could lead to decryption of TLS + sessions by using a server supporting SSLv2 and EXPORT cipher suites as a + Bleichenbacher RSA padding oracle. Note that traffic between clients and + non-vulnerable servers can be decrypted provided another server supporting + SSLv2 and EXPORT ciphers (even with a different protocol such as SMTP, IMAP or + POP) shares the RSA keys of the non-vulnerable server. This vulnerability is + known as DROWN (CVE-2016-0800). + + Recovering one session key requires the attacker to perform approximately 2^50 + computation, as well as thousands of connections to the affected server. A more + efficient variant of the DROWN attack exists against unpatched OpenSSL servers + using versions that predate 1.0.2a, 1.0.1m, 1.0.0r and 0.9.8zf released on + 19/Mar/2015 (see CVE-2016-0703 below). + + Users can avoid this issue by disabling the SSLv2 protocol in all their SSL/TLS + servers, if they've not done so already. Disabling all SSLv2 ciphers is also + sufficient, provided the patches for CVE-2015-3197 (fixed in OpenSSL 1.0.1r and + 1.0.2f) have been deployed. Servers that have not disabled the SSLv2 protocol, + and are not patched for CVE-2015-3197 are vulnerable to DROWN even if all SSLv2 + ciphers are nominally disabled, because malicious clients can force the use of + SSLv2 with EXPORT ciphers. + + OpenSSL 1.0.2g and 1.0.1s deploy the following mitigation against DROWN: + + SSLv2 is now by default disabled at build-time. Builds that are not configured + with "enable-ssl2" will not support SSLv2. Even if "enable-ssl2" is used, + users who want to negotiate SSLv2 via the version-flexible SSLv23_method() will + need to explicitly call either of: + + SSL_CTX_clear_options(ctx, SSL_OP_NO_SSLv2); + or + SSL_clear_options(ssl, SSL_OP_NO_SSLv2); + + as appropriate. Even if either of those is used, or the application explicitly + uses the version-specific SSLv2_method() or its client or server variants, + SSLv2 ciphers vulnerable to exhaustive search key recovery have been removed. + Specifically, the SSLv2 40-bit EXPORT ciphers, and SSLv2 56-bit DES are no + longer available. + + In addition, weak ciphers in SSLv3 and up are now disabled in default builds of + OpenSSL. Builds that are not configured with "enable-weak-ssl-ciphers" will + not provide any "EXPORT" or "LOW" strength ciphers. + </description> + <advisory url="/news/secadv/20160301.txt"/> + <reported source="Nimrod Aviram and Sebastian Schinzel"/> + </issue> + <issue public="20160301"> + <impact severity="Low"/> + <cve name="2016-0705"/> + <affects base="1.0.1" version="1.0.1"/> + <affects base="1.0.1" version="1.0.1a"/> + <affects base="1.0.1" version="1.0.1b"/> + <affects base="1.0.1" version="1.0.1c"/> + <affects base="1.0.1" version="1.0.1d"/> + <affects base="1.0.1" version="1.0.1e"/> + <affects base="1.0.1" version="1.0.1f"/> + <affects base="1.0.1" version="1.0.1g"/> + <affects base="1.0.1" version="1.0.1h"/> + <affects base="1.0.1" version="1.0.1i"/> + <affects base="1.0.1" version="1.0.1j"/> + <affects base="1.0.1" version="1.0.1k"/> + <affects base="1.0.1" version="1.0.1l"/> + <affects base="1.0.1" version="1.0.1m"/> + <affects base="1.0.1" version="1.0.1n"/> + <affects base="1.0.1" version="1.0.1o"/> + <affects base="1.0.1" version="1.0.1p"/> + <affects base="1.0.1" version="1.0.1q"/> + <affects base="1.0.1" version="1.0.1r"/> + <affects base="1.0.2" version="1.0.2"/> + <affects base="1.0.2" version="1.0.2a"/> + <affects base="1.0.2" version="1.0.2b"/> + <affects base="1.0.2" version="1.0.2c"/> + <affects base="1.0.2" version="1.0.2d"/> + <affects base="1.0.2" version="1.0.2e"/> + <affects base="1.0.2" version="1.0.2f"/> + <fixed base="1.0.1" version="1.0.1s" date="20160301"/> + <fixed base="1.0.2" version="1.0.2g" date="20160301"/> + + <description> + A double free bug was discovered when OpenSSL parses malformed DSA private keys + and could lead to a DoS attack or memory corruption for applications that + receive DSA private keys from untrusted sources. This scenario is considered + rare. + </description> + <advisory url="/news/secadv/20160301.txt"/> + <reported source="Adam Langley (Google/BoringSSL)"/> + </issue> + <issue public="20160301"> + <impact severity="Low"/> + <cve name="2016-0798"/> + <affects base="1.0.1" version="1.0.1"/> + <affects base="1.0.1" version="1.0.1a"/> + <affects base="1.0.1" version="1.0.1b"/> + <affects base="1.0.1" version="1.0.1c"/> + <affects base="1.0.1" version="1.0.1d"/> + <affects base="1.0.1" version="1.0.1e"/> + <affects base="1.0.1" version="1.0.1f"/> + <affects base="1.0.1" version="1.0.1g"/> + <affects base="1.0.1" version="1.0.1h"/> + <affects base="1.0.1" version="1.0.1i"/> + <affects base="1.0.1" version="1.0.1j"/> + <affects base="1.0.1" version="1.0.1k"/> + <affects base="1.0.1" version="1.0.1l"/> + <affects base="1.0.1" version="1.0.1m"/> + <affects base="1.0.1" version="1.0.1n"/> + <affects base="1.0.1" version="1.0.1o"/> + <affects base="1.0.1" version="1.0.1p"/> + <affects base="1.0.1" version="1.0.1q"/> + <affects base="1.0.1" version="1.0.1r"/> + <affects base="1.0.2" version="1.0.2"/> + <affects base="1.0.2" version="1.0.2a"/> + <affects base="1.0.2" version="1.0.2b"/> + <affects base="1.0.2" version="1.0.2c"/> + <affects base="1.0.2" version="1.0.2d"/> + <affects base="1.0.2" version="1.0.2e"/> + <affects base="1.0.2" version="1.0.2f"/> + <fixed base="1.0.1" version="1.0.1s" date="20160301"/> + <fixed base="1.0.2" version="1.0.2g" date="20160301"/> + + <description> + The SRP user database lookup method SRP_VBASE_get_by_user had + confusing memory management semantics; the returned pointer was sometimes newly + allocated, and sometimes owned by the callee. The calling code has no way of + distinguishing these two cases. + + Specifically, SRP servers that configure a secret seed to hide valid + login information are vulnerable to a memory leak: an attacker + connecting with an invalid username can cause a memory leak of around + 300 bytes per connection. Servers that do not configure SRP, or + configure SRP but do not configure a seed are not vulnerable. + + In Apache, the seed directive is known as SSLSRPUnknownUserSeed. + + To mitigate the memory leak, the seed handling in + SRP_VBASE_get_by_user is now disabled even if the user has configured + a seed. Applications are advised to migrate to + SRP_VBASE_get1_by_user. However, note that OpenSSL makes no strong + guarantees about the indistinguishability of valid and invalid + logins. In particular, computations are currently not carried out in + constant time. + </description> + <advisory url="/news/secadv/20160301.txt"/> + <reported source="OpenSSL"/> + </issue> + <issue public="20160301"> + <impact severity="Low"/> + <cve name="2016-0797"/> + <affects base="1.0.1" version="1.0.1"/> + <affects base="1.0.1" version="1.0.1a"/> + <affects base="1.0.1" version="1.0.1b"/> + <affects base="1.0.1" version="1.0.1c"/> + <affects base="1.0.1" version="1.0.1d"/> + <affects base="1.0.1" version="1.0.1e"/> + <affects base="1.0.1" version="1.0.1f"/> + <affects base="1.0.1" version="1.0.1g"/> + <affects base="1.0.1" version="1.0.1h"/> + <affects base="1.0.1" version="1.0.1i"/> + <affects base="1.0.1" version="1.0.1j"/> + <affects base="1.0.1" version="1.0.1k"/> + <affects base="1.0.1" version="1.0.1l"/> + <affects base="1.0.1" version="1.0.1m"/> + <affects base="1.0.1" version="1.0.1n"/> + <affects base="1.0.1" version="1.0.1o"/> + <affects base="1.0.1" version="1.0.1p"/> + <affects base="1.0.1" version="1.0.1q"/> + <affects base="1.0.1" version="1.0.1r"/> + <affects base="1.0.2" version="1.0.2"/> + <affects base="1.0.2" version="1.0.2a"/> + <affects base="1.0.2" version="1.0.2b"/> + <affects base="1.0.2" version="1.0.2c"/> + <affects base="1.0.2" version="1.0.2d"/> + <affects base="1.0.2" version="1.0.2e"/> + <affects base="1.0.2" version="1.0.2f"/> + <fixed base="1.0.1" version="1.0.1s" date="20160301"/> + <fixed base="1.0.2" version="1.0.2g" date="20160301"/> + + <description> + In the BN_hex2bn function the number of hex digits is calculated using an int + value |i|. Later |bn_expand| is called with a value of |i * 4|. For large values + of |i| this can result in |bn_expand| not allocating any memory because |i * 4| + is negative. This can leave the internal BIGNUM data field as NULL leading to a + subsequent NULL ptr deref. For very large values of |i|, the calculation |i * 4| + could be a positive value smaller than |i|. In this case memory is allocated to + the internal BIGNUM data field, but it is insufficiently sized leading to heap + corruption. A similar issue exists in BN_dec2bn. This could have security + consequences if BN_hex2bn/BN_dec2bn is ever called by user applications with + very large untrusted hex/dec data. This is anticipated to be a rare occurrence. + + All OpenSSL internal usage of these functions use data that is not expected to + be untrusted, e.g. config file data or application command line arguments. If + user developed applications generate config file data based on untrusted data + then it is possible that this could also lead to security consequences. This is + also anticipated to be rare. + </description> + <advisory url="/news/secadv/20160301.txt"/> + <reported source="Guido Vranken"/> + </issue> + <issue public="20160301"> + <impact severity="Low"/> + <cve name="2016-0799"/> + <affects base="1.0.1" version="1.0.1"/> + <affects base="1.0.1" version="1.0.1a"/> + <affects base="1.0.1" version="1.0.1b"/> + <affects base="1.0.1" version="1.0.1c"/> + <affects base="1.0.1" version="1.0.1d"/> + <affects base="1.0.1" version="1.0.1e"/> + <affects base="1.0.1" version="1.0.1f"/> + <affects base="1.0.1" version="1.0.1g"/> + <affects base="1.0.1" version="1.0.1h"/> + <affects base="1.0.1" version="1.0.1i"/> + <affects base="1.0.1" version="1.0.1j"/> + <affects base="1.0.1" version="1.0.1k"/> + <affects base="1.0.1" version="1.0.1l"/> + <affects base="1.0.1" version="1.0.1m"/> + <affects base="1.0.1" version="1.0.1n"/> + <affects base="1.0.1" version="1.0.1o"/> + <affects base="1.0.1" version="1.0.1p"/> + <affects base="1.0.1" version="1.0.1q"/> + <affects base="1.0.1" version="1.0.1r"/> + <affects base="1.0.2" version="1.0.2"/> + <affects base="1.0.2" version="1.0.2a"/> + <affects base="1.0.2" version="1.0.2b"/> + <affects base="1.0.2" version="1.0.2c"/> + <affects base="1.0.2" version="1.0.2d"/> + <affects base="1.0.2" version="1.0.2e"/> + <affects base="1.0.2" version="1.0.2f"/> + <fixed base="1.0.1" version="1.0.1s" date="20160301"/> + <fixed base="1.0.2" version="1.0.2g" date="20160301"/> + + <description> + The internal |fmtstr| function used in processing a "%s" format string in the + BIO_*printf functions could overflow while calculating the length of a string + and cause an OOB read when printing very long strings. + + Additionally the internal |doapr_outch| function can attempt to write to an OOB + memory location (at an offset from the NULL pointer) in the event of a memory + allocation failure. In 1.0.2 and below this could be caused where the size of a + buffer to be allocated is greater than INT_MAX. E.g. this could be in processing + a very long "%s" format string. Memory leaks can also occur. + + The first issue may mask the second issue dependent on compiler behaviour. + These problems could enable attacks where large amounts of untrusted data is + passed to the BIO_*printf functions. If applications use these functions in this + way then they could be vulnerable. OpenSSL itself uses these functions when + printing out human-readable dumps of ASN.1 data. Therefore applications that + print this data could be vulnerable if the data is from untrusted sources. + OpenSSL command line applications could also be vulnerable where they print out + ASN.1 data, or if untrusted data is passed as command line arguments. + + Libssl is not considered directly vulnerable. Additionally certificates etc + received via remote connections via libssl are also unlikely to be able to + trigger these issues because of message size limits enforced within libssl. + </description> + <advisory url="/news/secadv/20160301.txt"/> + <reported source="Guido Vranken"/> + </issue> + <issue public="20160301"> + <impact severity="Low"/> + <cve name="2016-0702"/> + <affects base="1.0.1" version="1.0.1"/> + <affects base="1.0.1" version="1.0.1a"/> + <affects base="1.0.1" version="1.0.1b"/> + <affects base="1.0.1" version="1.0.1c"/> + <affects base="1.0.1" version="1.0.1d"/> + <affects base="1.0.1" version="1.0.1e"/> + <affects base="1.0.1" version="1.0.1f"/> + <affects base="1.0.1" version="1.0.1g"/> + <affects base="1.0.1" version="1.0.1h"/> + <affects base="1.0.1" version="1.0.1i"/> + <affects base="1.0.1" version="1.0.1j"/> + <affects base="1.0.1" version="1.0.1k"/> + <affects base="1.0.1" version="1.0.1l"/> + <affects base="1.0.1" version="1.0.1m"/> + <affects base="1.0.1" version="1.0.1n"/> + <affects base="1.0.1" version="1.0.1o"/> + <affects base="1.0.1" version="1.0.1p"/> + <affects base="1.0.1" version="1.0.1q"/> + <affects base="1.0.1" version="1.0.1r"/> + <affects base="1.0.2" version="1.0.2"/> + <affects base="1.0.2" version="1.0.2a"/> + <affects base="1.0.2" version="1.0.2b"/> + <affects base="1.0.2" version="1.0.2c"/> + <affects base="1.0.2" version="1.0.2d"/> + <affects base="1.0.2" version="1.0.2e"/> + <affects base="1.0.2" version="1.0.2f"/> + <fixed base="1.0.1" version="1.0.1s" date="20160301"/> + <fixed base="1.0.2" version="1.0.2g" date="20160301"/> + + <description> + A side-channel attack was found which makes use of cache-bank conflicts on the + Intel Sandy-Bridge microarchitecture which could lead to the recovery of RSA + keys. The ability to exploit this issue is limited as it relies on an attacker + who has control of code in a thread running on the same hyper-threaded core as + the victim thread which is performing decryptions. + </description> + <advisory url="/news/secadv/20160301.txt"/> + <reported source="Yuval Yarom, The University of Adelaide and NICTA, Daniel Genkin, Technion and Tel Aviv University, and Nadia Heninger, University of Pennsylvania"/> + </issue> + <issue public="20160301"> + <impact severity="High"/> + <cve name="2016-0703"/> + + <affects base="0.9.8" version="0.9.8"/> + <affects base="0.9.8" version="0.9.8a"/> + <affects base="0.9.8" version="0.9.8b"/> + <affects base="0.9.8" version="0.9.8c"/> + <affects base="0.9.8" version="0.9.8d"/> + <affects base="0.9.8" version="0.9.8e"/> + <affects base="0.9.8" version="0.9.8f"/> + <affects base="0.9.8" version="0.9.8g"/> + <affects base="0.9.8" version="0.9.8h"/> + <affects base="0.9.8" version="0.9.8i"/> + <affects base="0.9.8" version="0.9.8j"/> + <affects base="0.9.8" version="0.9.8k"/> + <affects base="0.9.8" version="0.9.8l"/> + <affects base="0.9.8" version="0.9.8m"/> + <affects base="0.9.8" version="0.9.8n"/> + <affects base="0.9.8" version="0.9.8o"/> + <affects base="0.9.8" version="0.9.8p"/> + <affects base="0.9.8" version="0.9.8q"/> + <affects base="0.9.8" version="0.9.8r"/> + <affects base="0.9.8" version="0.9.8s"/> + <affects base="0.9.8" version="0.9.8t"/> + <affects base="0.9.8" version="0.9.8u"/> + <affects base="0.9.8" version="0.9.8v"/> + <affects base="0.9.8" version="0.9.8w"/> + <affects base="0.9.8" version="0.9.8x"/> + <affects base="0.9.8" version="0.9.8y"/> + <affects base="0.9.8" version="0.9.8za"/> + <affects base="0.9.8" version="0.9.8zb"/> + <affects base="0.9.8" version="0.9.8zc"/> + <affects base="0.9.8" version="0.9.8zd"/> + <affects base="0.9.8" version="0.9.8ze"/> + <affects base="1.0.0" version="1.0.0"/> + <affects base="1.0.0" version="1.0.0a"/> + <affects base="1.0.0" version="1.0.0b"/> + <affects base="1.0.0" version="1.0.0c"/> + <affects base="1.0.0" version="1.0.0d"/> + <affects base="1.0.0" version="1.0.0e"/> + <affects base="1.0.0" version="1.0.0f"/> + <affects base="1.0.0" version="1.0.0g"/> + <affects base="1.0.0" version="1.0.0i"/> + <affects base="1.0.0" version="1.0.0j"/> + <affects base="1.0.0" version="1.0.0k"/> + <affects base="1.0.0" version="1.0.0l"/> + <affects base="1.0.0" version="1.0.0m"/> + <affects base="1.0.0" version="1.0.0n"/> + <affects base="1.0.0" version="1.0.0o"/> + <affects base="1.0.0" version="1.0.0p"/> + <affects base="1.0.0" version="1.0.0q"/> + <affects base="1.0.1" version="1.0.1"/> + <affects base="1.0.1" version="1.0.1a"/> + <affects base="1.0.1" version="1.0.1b"/> + <affects base="1.0.1" version="1.0.1c"/> + <affects base="1.0.1" version="1.0.1d"/> + <affects base="1.0.1" version="1.0.1e"/> + <affects base="1.0.1" version="1.0.1f"/> + <affects base="1.0.1" version="1.0.1g"/> + <affects base="1.0.1" version="1.0.1h"/> + <affects base="1.0.1" version="1.0.1i"/> + <affects base="1.0.1" version="1.0.1j"/> + <affects base="1.0.1" version="1.0.1k"/> + <affects base="1.0.1" version="1.0.1l"/> + <affects base="1.0.2" version="1.0.2"/> + <fixed base="0.9.8" version="0.9.8zf" date="20150319"/> + <fixed base="1.0.0" version="1.0.0r" date="20150319"/> + <fixed base="1.0.1" version="1.0.1m" date="20150319"/> + <fixed base="1.0.2" version="1.0.2a" date="20150319"/> + + <description> + This issue only affected versions of OpenSSL prior to March 19th 2015 at which + time the code was refactored to address vulnerability CVE-2015-0293. + + s2_srvr.c did not enforce that clear-key-length is 0 for non-export ciphers. If + clear-key bytes are present for these ciphers, they *displace* encrypted-key + bytes. This leads to an efficient divide-and-conquer key recovery attack: if an + eavesdropper has intercepted an SSLv2 handshake, they can use the server as an + oracle to determine the SSLv2 master-key, using only 16 connections to the + server and negligible computation. + + More importantly, this leads to a more efficient version of DROWN that is + effective against non-export ciphersuites, and requires no significant + computation. + </description> + <advisory url="/news/secadv/20160301.txt"/> + <reported source="David Adrian and J.Alex Halderman (University of Michigan)"/> + </issue> + <issue public="20160301"> + <impact severity="Moderate"/> + <cve name="2016-0704"/> + + <affects base="0.9.8" version="0.9.8"/> + <affects base="0.9.8" version="0.9.8a"/> + <affects base="0.9.8" version="0.9.8b"/> + <affects base="0.9.8" version="0.9.8c"/> + <affects base="0.9.8" version="0.9.8d"/> + <affects base="0.9.8" version="0.9.8e"/> + <affects base="0.9.8" version="0.9.8f"/> + <affects base="0.9.8" version="0.9.8g"/> + <affects base="0.9.8" version="0.9.8h"/> + <affects base="0.9.8" version="0.9.8i"/> + <affects base="0.9.8" version="0.9.8j"/> + <affects base="0.9.8" version="0.9.8k"/> + <affects base="0.9.8" version="0.9.8l"/> + <affects base="0.9.8" version="0.9.8m"/> + <affects base="0.9.8" version="0.9.8n"/> + <affects base="0.9.8" version="0.9.8o"/> + <affects base="0.9.8" version="0.9.8p"/> + <affects base="0.9.8" version="0.9.8q"/> + <affects base="0.9.8" version="0.9.8r"/> + <affects base="0.9.8" version="0.9.8s"/> + <affects base="0.9.8" version="0.9.8t"/> + <affects base="0.9.8" version="0.9.8u"/> + <affects base="0.9.8" version="0.9.8v"/> + <affects base="0.9.8" version="0.9.8w"/> + <affects base="0.9.8" version="0.9.8x"/> + <affects base="0.9.8" version="0.9.8y"/> + <affects base="0.9.8" version="0.9.8za"/> + <affects base="0.9.8" version="0.9.8zb"/> + <affects base="0.9.8" version="0.9.8zc"/> + <affects base="0.9.8" version="0.9.8zd"/> + <affects base="0.9.8" version="0.9.8ze"/> + <affects base="1.0.0" version="1.0.0"/> + <affects base="1.0.0" version="1.0.0a"/> + <affects base="1.0.0" version="1.0.0b"/> + <affects base="1.0.0" version="1.0.0c"/> + <affects base="1.0.0" version="1.0.0d"/> + <affects base="1.0.0" version="1.0.0e"/> + <affects base="1.0.0" version="1.0.0f"/> + <affects base="1.0.0" version="1.0.0g"/> + <affects base="1.0.0" version="1.0.0i"/> + <affects base="1.0.0" version="1.0.0j"/> + <affects base="1.0.0" version="1.0.0k"/> + <affects base="1.0.0" version="1.0.0l"/> + <affects base="1.0.0" version="1.0.0m"/> + <affects base="1.0.0" version="1.0.0n"/> + <affects base="1.0.0" version="1.0.0o"/> + <affects base="1.0.0" version="1.0.0p"/> + <affects base="1.0.0" version="1.0.0q"/> + <affects base="1.0.1" version="1.0.1"/> + <affects base="1.0.1" version="1.0.1a"/> + <affects base="1.0.1" version="1.0.1b"/> + <affects base="1.0.1" version="1.0.1c"/> + <affects base="1.0.1" version="1.0.1d"/> + <affects base="1.0.1" version="1.0.1e"/> + <affects base="1.0.1" version="1.0.1f"/> + <affects base="1.0.1" version="1.0.1g"/> + <affects base="1.0.1" version="1.0.1h"/> + <affects base="1.0.1" version="1.0.1i"/> + <affects base="1.0.1" version="1.0.1j"/> + <affects base="1.0.1" version="1.0.1k"/> + <affects base="1.0.1" version="1.0.1l"/> + <affects base="1.0.2" version="1.0.2"/> + <fixed base="0.9.8" version="0.9.8zf" date="20150319"/> + <fixed base="1.0.0" version="1.0.0r" date="20150319"/> + <fixed base="1.0.1" version="1.0.1m" date="20150319"/> + <fixed base="1.0.2" version="1.0.2a" date="20150319"/> + + <description> + This issue only affected versions of OpenSSL prior to March 19th 2015 at which + time the code was refactored to address the vulnerability CVE-2015-0293. + + s2_srvr.c overwrite the wrong bytes in the master-key when applying + Bleichenbacher protection for export cipher suites. This provides a + Bleichenbacher oracle, and could potentially allow more efficient variants of + the DROWN attack. + </description> + <advisory url="/news/secadv/20160301.txt"/> + <reported source="David Adrian and J.Alex Halderman (University of Michigan)"/> + </issue> <issue public="20160128"> <impact severity="High"/> <cve name="2016-0701"/> _____ openssl-commits mailing list To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-commits