Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package openssl-1_0_0 for openSUSE:Factory 
checked in at 2023-08-08 17:25:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openssl-1_0_0 (Old)
 and      /work/SRC/openSUSE:Factory/.openssl-1_0_0.new.22712 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "openssl-1_0_0"

Tue Aug  8 17:25:58 2023 rev:40 rq:1102939 version:1.0.2u

Changes:
--------
--- /work/SRC/openSUSE:Factory/openssl-1_0_0/openssl-1_0_0.changes      
2023-07-25 11:50:16.829163437 +0200
+++ /work/SRC/openSUSE:Factory/.openssl-1_0_0.new.22712/openssl-1_0_0.changes   
2023-08-08 17:26:03.443220012 +0200
@@ -1,0 +2,16 @@
+Mon Aug  7 14:21:09 UTC 2023 - Otto Hollmann <otto.hollm...@suse.com>
+
+- Security fix: (bsc#1213853, CVE-2023-3817)
+  * Fix excessive time spent checking DH q parameter value
+    (bsc#1213853, CVE-2023-3817). The function DH_check() performs
+    various checks on DH parameters. After fixing CVE-2023-3446 it
+    was discovered that a large q parameter value can also trigger
+    an overly long computation during some of these checks. A
+    correct q value, if present, cannot be larger than the modulus
+    p parameter, thus it is unnecessary to perform these checks if
+    q is larger than p. If DH_check() is called with such q parameter
+    value, DH_CHECK_INVALID_Q_VALUE return flag is set and the
+    computationally intensive checks are skipped.
+  * Add openssl-1_0-CVE-2023-3817.patch
+
+-------------------------------------------------------------------

New:
----
  openssl-1_0-CVE-2023-3817.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ openssl-1_0_0.spec ++++++
--- /var/tmp/diff_new_pack.hzk1ZR/_old  2023-08-08 17:26:04.875228910 +0200
+++ /var/tmp/diff_new_pack.hzk1ZR/_new  2023-08-08 17:26:04.875228910 +0200
@@ -130,6 +130,8 @@
 Patch101:       openssl-CVE-2023-2650.patch
 # PATCH-FIX-UPSTREAM: bsc#1213487 CVE-2023-3446 DH_check() excessive time with 
over sized modulus
 Patch102:       openssl-CVE-2023-3446.patch
+# PATCH-FIX-UPSTREAM bsc#1213853 CVE-2023-3817 Excessive time spent checking 
DH q parameter value
+Patch103:       openssl-1_0-CVE-2023-3817.patch
 # steam patches
 Patch150:       openssl-fix-cpuid_setup.patch
 # compat patches to build with soversion 10 (bsc#1175429)
@@ -295,6 +297,7 @@
 %patch100 -p1
 %patch101 -p1
 %patch102 -p1
+%patch103 -p1
 
 # clean up patching leftovers
 find . -name '*.orig' -delete


++++++ openssl-1_0-CVE-2023-3817.patch ++++++
>From 91ddeba0f2269b017dc06c46c993a788974b1aa5 Mon Sep 17 00:00:00 2001
From: Tomas Mraz <to...@openssl.org>
Date: Fri, 21 Jul 2023 11:39:41 +0200
Subject: [PATCH 198/200] DH_check(): Do not try checking q properties if it is
 obviously invalid

If  |q| >= |p| then the q value is obviously wrong as q
is supposed to be a prime divisor of p-1.

We check if p is overly large so this added test implies that
q is not large either when performing subsequent tests using that
q value.

Otherwise if it is too large these additional checks of the q value
such as the primality test can then trigger DoS by doing overly long
computations.

Fixes CVE-2023-3817

Reviewed-by: Paul Dale <pa...@openssl.org>
Reviewed-by: Matt Caswell <m...@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21551)

---
 crypto/dh/dh_check.c |   11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

--- a/crypto/dh/dh_check.c
+++ b/crypto/dh/dh_check.c
@@ -74,7 +74,7 @@
 
 int DH_check(const DH *dh, int *ret)
 {
-    int ok = 0;
+    int ok = 0, q_good = 0;
     BN_CTX *ctx = NULL;
     BN_ULONG l;
     BIGNUM *t1 = NULL, *t2 = NULL;
@@ -107,7 +107,14 @@ int DH_check(const DH *dh, int *ret)
     if (t2 == NULL)
         goto err;
 
-    if (dh->q) {
+    if (dh->q != NULL) {
+        if (BN_ucmp(dh->p, dh->q) > 0)
+            q_good = 1;
+        else
+            *ret |= DH_CHECK_INVALID_Q_VALUE;
+    }
+
+    if (q_good) {
         if (BN_cmp(dh->g, BN_value_one()) <= 0)
             *ret |= DH_NOT_SUITABLE_GENERATOR;
         else if (BN_cmp(dh->g, dh->p) >= 0)

Reply via email to