Pedro Monreal Gonzalez
6e95485a74
* Major changes between OpenSSL 3.1.6 and OpenSSL 3.1.7 [3 Sep 2024] - Fixed possible denial of service in X.509 name checks (CVE-2024-6119) - Fixed possible buffer overread in SSL_select_next_proto() (CVE-2024-5535) * Major changes between OpenSSL 3.1.5 and OpenSSL 3.1.6 [4 Jun 2024] - Fixed potential use after free after SSL_free_buffers() is called (CVE-2024-4741) - Fixed an issue where checking excessively long DSA keys or parameters may be very slow (CVE-2024-4603) - Fixed unbounded memory growth with session handling in TLSv1.3 (CVE-2024-2511) * Major changes between OpenSSL 3.1.4 and OpenSSL 3.1.5 [30 Jan 2024] - Fixed PKCS12 Decoding crashes (CVE-2024-0727) - Fixed Excessive time spent checking invalid RSA public keys [CVE-2023-6237) - Fixed POLY1305 MAC implementation corrupting vector registers on PowerPC CPUs which support PowerISA 2.07 (CVE-2023-6129) - Fix excessive time spent in DH check / generation with large Q parameter value (CVE-2023-5678) * Update openssl.keyring with BA5473A2B0587B07FB27CF2D216094DFD0CB81EF * Rebase patches: - openssl-Force-FIPS.patch - openssl-FIPS-embed-hmac.patch - openssl-FIPS-services-minimize.patch - openssl-FIPS-RSA-disable-shake.patch - openssl-CVE-2023-50782.patch * Remove patches fixed in the update: - openssl-Improve-performance-for-6x-unrolling-with-vpermxor-i.patch - openssl-CVE-2024-6119.patch openssl-CVE-2024-5535.patch OBS-URL: https://build.opensuse.org/package/show/security:tls/openssl-3?expand=0&rev=119
79 lines
2.6 KiB
Diff
79 lines
2.6 KiB
Diff
From 2c110cf5551a3869514e697d8dc06682b62ca57d Mon Sep 17 00:00:00 2001
|
|
From: Dmitry Belyavskiy <dbelyavs@redhat.com>
|
|
Date: Mon, 21 Aug 2023 11:59:02 +0200
|
|
Subject: [PATCH 16/48] 0032-Force-fips.patch
|
|
|
|
Patch-name: 0032-Force-fips.patch
|
|
Patch-id: 32
|
|
Patch-status: |
|
|
# We load FIPS provider and set FIPS properties implicitly
|
|
---
|
|
crypto/provider_conf.c | 28 +++++++++++++++++++++++++++-
|
|
1 file changed, 27 insertions(+), 1 deletion(-)
|
|
|
|
Index: openssl-3.1.7/crypto/provider_conf.c
|
|
===================================================================
|
|
--- openssl-3.1.7.orig/crypto/provider_conf.c
|
|
+++ openssl-3.1.7/crypto/provider_conf.c
|
|
@@ -10,6 +10,8 @@
|
|
#include <string.h>
|
|
#include <openssl/trace.h>
|
|
#include <openssl/err.h>
|
|
+#include <openssl/evp.h>
|
|
+#include <unistd.h>
|
|
#include <openssl/conf.h>
|
|
#include <openssl/safestack.h>
|
|
#include <openssl/provider.h>
|
|
@@ -237,7 +239,7 @@ static int provider_conf_activate(OSSL_L
|
|
if (path != NULL)
|
|
ossl_provider_set_module_path(prov, path);
|
|
|
|
- ok = provider_conf_params(prov, NULL, NULL, value, cnf);
|
|
+ ok = cnf ? provider_conf_params(prov, NULL, NULL, value, cnf) : 1;
|
|
|
|
if (ok == 1) {
|
|
if (!ossl_provider_activate(prov, 1, 0)) {
|
|
@@ -266,6 +268,8 @@ static int provider_conf_activate(OSSL_L
|
|
|
|
if (ok <= 0)
|
|
ossl_provider_free(prov);
|
|
+ } else {
|
|
+ ok = 1;
|
|
}
|
|
CRYPTO_THREAD_unlock(pcgbl->lock);
|
|
|
|
@@ -383,6 +387,33 @@ static int provider_conf_init(CONF_IMODU
|
|
return 0;
|
|
}
|
|
|
|
+ if (ossl_get_kernel_fips_flag() != 0) { /* XXX from provider_conf_load */
|
|
+ OSSL_LIB_CTX *libctx = NCONF_get0_libctx((CONF *)cnf);
|
|
+# define FIPS_LOCAL_CONF OPENSSLDIR "/fips_local.cnf"
|
|
+
|
|
+ if (access(FIPS_LOCAL_CONF, R_OK) == 0) {
|
|
+ CONF *fips_conf = NCONF_new_ex(libctx, NCONF_default());
|
|
+ if (NCONF_load(fips_conf, FIPS_LOCAL_CONF, NULL) <= 0)
|
|
+ return 0;
|
|
+
|
|
+ if (provider_conf_load(libctx, "fips", "fips_sect", fips_conf) != 1) {
|
|
+ NCONF_free(fips_conf);
|
|
+ return 0;
|
|
+ }
|
|
+ NCONF_free(fips_conf);
|
|
+ } else {
|
|
+ if (provider_conf_activate(libctx, "fips", NULL, NULL, 0, NULL) != 1)
|
|
+ return 0;
|
|
+ }
|
|
+ /* provider_conf_load can return 1 even when the test is failed so check explicitly */
|
|
+ if (OSSL_PROVIDER_available(libctx, "fips") != 1)
|
|
+ return 0;
|
|
+ if (provider_conf_activate(libctx, "base", NULL, NULL, 0, NULL) != 1)
|
|
+ return 0;
|
|
+ if (EVP_default_properties_enable_fips(libctx, 1) != 1)
|
|
+ return 0;
|
|
+ }
|
|
+
|
|
return 1;
|
|
}
|
|
|