This update for openssl fixes various security issues and bugs:
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 'OPENSSLALLOWSSL2' or by using SSLCTXclearoptions using the SSLOPNOSSLv2 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 'OPENSSLALLOWEXPORT'.
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 BNhex2bn() and BNdec2bn() 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 SRPVBASEgetbyuser() had a memory leak that attackers could abuse to facility DoS attacks. To mitigate the issue, the seed handling in SRPVBASEgetbyuser() was disabled even if the user has configured a seed. Applications are advised to migrate to SRPVBASEget1byuser().
CVE-2016-0799 (bnc#968374) On many 64 bit systems, the internal fmtstr() and doaproutch() 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:
Bugs fixed: - Avoid running OPENSSL_config twice. This avoids breaking engine loading. (bsc#952871) - 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 digest. (bnc#958501)