diff options
author | V3n3RiX <venerix@koprulu.sector> | 2023-03-28 21:51:32 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2023-03-28 21:51:32 +0100 |
commit | c55c2cf7b5e5e8ce7f21c53ee7996c2ea918279d (patch) | |
tree | e8bb447a647aa737a0da2ede957972eb72e7dcd4 /dev-libs/openssl/files/openssl-1.1.1t-CVE-2023-0465.patch | |
parent | d41bd0acd3d0cd850cdd815b12e69ee2c89c5697 (diff) |
gentoo auto-resync : 28:03:2023 - 21:51:31
Diffstat (limited to 'dev-libs/openssl/files/openssl-1.1.1t-CVE-2023-0465.patch')
-rw-r--r-- | dev-libs/openssl/files/openssl-1.1.1t-CVE-2023-0465.patch | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/dev-libs/openssl/files/openssl-1.1.1t-CVE-2023-0465.patch b/dev-libs/openssl/files/openssl-1.1.1t-CVE-2023-0465.patch new file mode 100644 index 000000000000..c332e0bd2c9f --- /dev/null +++ b/dev-libs/openssl/files/openssl-1.1.1t-CVE-2023-0465.patch @@ -0,0 +1,48 @@ +commit b013765abfa80036dc779dd0e50602c57bb3bf95 +Author: Matt Caswell <matt@openssl.org> +Date: Tue Mar 7 16:52:55 2023 +0000 + + Ensure that EXFLAG_INVALID_POLICY is checked even in leaf certs + + Even though we check the leaf cert to confirm it is valid, we + later ignored the invalid flag and did not notice that the leaf + cert was bad. + + Fixes: CVE-2023-0465 + + Reviewed-by: Hugo Landau <hlandau@openssl.org> + Reviewed-by: Tomas Mraz <tomas@openssl.org> + (Merged from https://github.com/openssl/openssl/pull/20588) + +diff --git a/crypto/x509/x509_vfy.c b/crypto/x509/x509_vfy.c +index 925fbb5412..1dfe4f9f31 100644 +--- a/crypto/x509/x509_vfy.c ++++ b/crypto/x509/x509_vfy.c +@@ -1649,18 +1649,25 @@ static int check_policy(X509_STORE_CTX *ctx) + } + /* Invalid or inconsistent extensions */ + if (ret == X509_PCY_TREE_INVALID) { +- int i; ++ int i, cbcalled = 0; + + /* Locate certificates with bad extensions and notify callback. */ +- for (i = 1; i < sk_X509_num(ctx->chain); i++) { ++ for (i = 0; i < sk_X509_num(ctx->chain); i++) { + X509 *x = sk_X509_value(ctx->chain, i); + + if (!(x->ex_flags & EXFLAG_INVALID_POLICY)) + continue; ++ cbcalled = 1; + if (!verify_cb_cert(ctx, x, i, + X509_V_ERR_INVALID_POLICY_EXTENSION)) + return 0; + } ++ if (!cbcalled) { ++ /* Should not be able to get here */ ++ X509err(X509_F_CHECK_POLICY, ERR_R_INTERNAL_ERROR); ++ return 0; ++ } ++ /* The callback ignored the error so we return success */ + return 1; + } + if (ret == X509_PCY_TREE_FAILURE) { |