Security update for openssl

This update for openssl fixes various security issues:

Security issues fixed:
- CVE-2016-0800 aka the "DROWN" attack (bsc#968046):
OpenSSL was vulnerable to a cross-protocol attack that could lead to
decryption of TLS sessions by using a server supporting SSLv2 and
EXPORT cipher suites as a Bleichenbacher RSA padding oracle.

This update changes the openssl library to:

* Disable SSLv2 protocol support by default.

This can be overridden by setting the environment variable
"OPENSSL_ALLOW_SSL2" or by using SSL_CTX_clear_options using the
SSL_OP_NO_SSLv2 flag.

Note that various services and clients had already disabled SSL
protocol 2 by default previously.

* Disable all weak EXPORT ciphers by default. These can be reenabled
if required by old legacy software using the environment variable
"OPENSSL_ALLOW_EXPORT".

- CVE-2016-0702 aka the "CacheBleed" attack. (bsc#968050)
Various changes in the modular exponentation code were added that
make sure that it is not possible to recover RSA secret keys by
analyzing cache-bank conflicts on the Intel Sandy-Bridge microarchitecture.

Note that this was only exploitable if the malicious code was running
on the same hyper threaded Intel Sandy Bridge processor as the victim
thread performing decryptions.

- CVE-2016-0705 (bnc#968047):
A double free() bug in the DSA ASN1 parser code was fixed that could
be abused to facilitate a denial-of-service attack.

- CVE-2016-0797 (bnc#968048):
The BN_hex2bn() and BN_dec2bn() functions had a bug that could
result in an attempt to de-reference a NULL pointer leading to crashes.
This could have security consequences if these functions were ever called by
user applications with large untrusted hex/decimal data. Also,
internal usage of these functions in OpenSSL uses data from config
files or application command line arguments. If user developed
applications generated config file data based on untrusted data,
then this could have had security consequences as well.

- CVE-2016-0798 (bnc#968265)
The SRP user database lookup method SRP_VBASE_get_by_user() had a memory
leak that attackers could abuse to facility DoS attacks. To mitigate
the issue, the seed handling in SRP_VBASE_get_by_user() was disabled
even if the user has configured a seed. Applications are advised to
migrate to SRP_VBASE_get1_by_user().

- CVE-2016-0799 (bnc#968374)
On many 64 bit systems, the internal fmtstr() and doapr_outch()
functions could miscalculate the length of a string and attempt to
access out-of-bounds memory locations. These problems could have
enabled 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 have been vulnerable. OpenSSL itself uses
these functions when printing out human-readable dumps of ASN.1
data. Therefore applications that print this data could have been
vulnerable if the data is from untrusted sources. OpenSSL command line
applications could also have been vulnerable when they print out ASN.1
data, or if untrusted data is passed as command line arguments. Libssl
is not considered directly vulnerable.

- CVE-2015-3197 (bsc#963415):
The SSLv2 protocol did not block disabled ciphers.

Note that the March 1st 2016 release also references following CVEs
that were fixed by us with CVE-2015-0293 in 2015:

- CVE-2016-0703 (bsc#968051): 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. It would have made the above
"DROWN" attack much easier.
- CVE-2016-0704 (bsc#968053): "Bleichenbacher oracle in SSLv2"
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. It would have made the above "DROWN" attack much easier.

Also the following bug was fixed:
- Ensure that OpenSSL doesn't fall back to the default digest
algorithm (SHA1) in case a non-FIPS algorithm was negotiated while
running in FIPS mode. Instead, OpenSSL will refuse the session.
(bnc#958501)

This update was imported from the SUSE:SLE-12-SP1:Update update project.

Fixed bugs
bnc#963415
VUL-1: CVE-2015-3197: openssl: SSLv2 doesn't block disabled ciphers
bnc#958501
openssl: automatic fallback to SHA1 and no error if non FIPS algo is used
bnc#968046
VUL-0: EMBARGOED: CVE-2016-0800: openssl: Cross-protocol attack on TLS using SSLv2 (DROWN)
bnc#968047
VUL-0: EMBARGOED: CVE-2016-0705: openssl: Double-free in DSA code
bnc#968048
VUL-1: EMBARGOED: CVE-2016-0797: openssl: BN_hex2bn/BN_dec2bn NULL pointer deref/heap corruption
bnc#968050
VUL-1: EMBARGOED: CVE-2016-0702: openssl: Side channel attack on modular exponentiation
bnc#968051
VUL-0: EMBARGOED: CVE-2016-0703: openssl: Divide-and-conquer session key recovery in SSLv2
bnc#968053
VUL-0: EMBARGOED: CVE-2016-0704: openssl: Bleichenbacher oracle in SSLv2
bnc#968265
VUL-1: CVE-2016-0798: openssl: avoid memory leak in SRP
bnc#968374
VUL-1: CVE-2016-0799: openssl: memory issues in BIO_*printf functions
Selected Binaries
openSUSE Build Service is sponsored by