Hello community,

here is the log from the commit of package openssl for openSUSE:11.4
checked in at Mon Feb 6 16:15:58 CET 2012.



--------
--- old-versions/11.4/UPDATES/all/openssl/openssl.changes       2012-01-11 
08:18:04.000000000 +0100
+++ 11.4/openssl/openssl.changes        2012-02-02 08:23:19.000000000 +0100
@@ -1,0 +2,6 @@
+Thu Feb  2 07:22:17 UTC 2012 - [email protected]
+
+- fix security bug [bnc#742821] - DTLS DoS Attack
+  CVE-2012-0050
+
+-------------------------------------------------------------------

calling whatdependson for 11.4-i586


New:
----
  CVE-2012-0050.patch

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

Other differences:
------------------
++++++ openssl.spec ++++++
--- /var/tmp/diff_new_pack.VLWWs2/_old  2012-02-06 16:15:44.000000000 +0100
+++ /var/tmp/diff_new_pack.VLWWs2/_new  2012-02-06 16:15:44.000000000 +0100
@@ -31,7 +31,7 @@
 Obsoletes:      openssl-64bit
 %endif
 Version:        1.0.0c
-Release:        18.<RELEASE23>
+Release:        18.<RELEASE25>
 Summary:        Secure Sockets and Transport Layer Security
 Url:            http://www.openssl.org/
 Source:         http://www.%{name}.org/source/%{name}-%{version}.tar.bz2
@@ -55,6 +55,7 @@
 Patch23:        CVE-2011-4577.patch
 Patch24:        CVE-2011-4619.patch
 Patch25:        CVE-2012-0027.patch
+Patch26:        CVE-2012-0050.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
 %description
@@ -197,6 +198,7 @@
 %patch23 -p1
 %patch24 -p1
 %patch25 -p1
+%patch26 -p1
 cp -p %{S:10} .
 echo "adding/overwriting some entries in the 'table' hash in Configure"
 # 
$dso_scheme:$shared_target:$shared_cflag:$shared_ldflag:$shared_extension:$ranlib:$arflags

++++++ CVE-2012-0050.patch ++++++
Index: openssl-1.0.0e/ssl/d1_pkt.c
===================================================================
--- openssl-1.0.0e.orig/ssl/d1_pkt.c
+++ openssl-1.0.0e/ssl/d1_pkt.c
@@ -376,6 +376,7 @@ dtls1_process_record(SSL *s)
        unsigned int mac_size;
        unsigned char md[EVP_MAX_MD_SIZE];
        int decryption_failed_or_bad_record_mac = 0;
+       unsigned char *mac = NULL;
 
 
        rr= &(s->s3->rrec);
@@ -447,19 +448,15 @@ printf("\n");
 #endif                 
                        }
                /* check the MAC for rr->input (it's in mac_size bytes at the 
tail) */
-               if (rr->length < mac_size)
+               if (rr->length >= mac_size)
                        {
-#if 0 /* OK only for stream ciphers */
-                       al=SSL_AD_DECODE_ERROR;
-                       
SSLerr(SSL_F_DTLS1_PROCESS_RECORD,SSL_R_LENGTH_TOO_SHORT);
-                       goto f_err;
-#else
-                       decryption_failed_or_bad_record_mac = 1;
-#endif
+                       rr->length -= mac_size;
+                       mac = &rr->data[rr->length];
                        }
-               rr->length-=mac_size;
+               else
+                       rr->length = 0;
                i=s->method->ssl3_enc->mac(s,md,0);
-               if (i < 0 || memcmp(md,&(rr->data[rr->length]),mac_size) != 0)
+               if (i < 0 || mac == NULL || memcmp(md, mac, mac_size) != 0)
                        {
                        decryption_failed_or_bad_record_mac = 1;
                        }
continue with "q"...



Remember to have fun...

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to