openssl: add fix for CVE-2013-6449
authorGustavo Zacarias <gustavo@zacarias.com.ar>
Fri, 3 Jan 2014 10:38:22 +0000 (07:38 -0300)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Fri, 3 Jan 2014 19:45:29 +0000 (20:45 +0100)
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/openssl/openssl-001-do-not-build-docs.patch [new file with mode: 0644]
package/openssl/openssl-002-dont-force-large-file.patch [new file with mode: 0644]
package/openssl/openssl-003-CVE-2013-6449.patch [new file with mode: 0644]
package/openssl/openssl-do-not-build-docs.patch [deleted file]
package/openssl/openssl-dont-force-large-file.patch [deleted file]

diff --git a/package/openssl/openssl-001-do-not-build-docs.patch b/package/openssl/openssl-001-do-not-build-docs.patch
new file mode 100644 (file)
index 0000000..135a9d3
--- /dev/null
@@ -0,0 +1,13 @@
+Dont waste time building manpages if we're not going to use em.
+
+--- openssl/Makefile.org
++++ openssl/Makefile.org
+@@ -792,7 +792,7 @@
+ dist_pem_h:
+       (cd crypto/pem; $(MAKE) CC='${CC}' SDIRS='${SDIRS}' CFLAG='${CFLAG}' pem.h; $(MAKE) clean)
+-install: all install_docs install_sw
++install: all install_sw
+ install_sw:
+       @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
diff --git a/package/openssl/openssl-002-dont-force-large-file.patch b/package/openssl/openssl-002-dont-force-large-file.patch
new file mode 100644 (file)
index 0000000..5b04656
--- /dev/null
@@ -0,0 +1,19 @@
+[patch]: bss_file.c: don't force largefile mode
+---
+ crypto/bio/bss_file.c |    3 ---
+ 1 file changed, 3 deletions(-)
+
+Index: openssl-0.9.8g/crypto/bio/bss_file.c
+===================================================================
+--- openssl-0.9.8g.orig/crypto/bio/bss_file.c
++++ openssl-0.9.8g/crypto/bio/bss_file.c
+@@ -78,9 +78,6 @@
+  * sequential access of large files without extra "magic" comprise *BSD,
+  * Darwin, IRIX...
+  */
+-#ifndef _FILE_OFFSET_BITS
+-#define _FILE_OFFSET_BITS 64
+-#endif
+ #endif
+ #include <stdio.h>
diff --git a/package/openssl/openssl-003-CVE-2013-6449.patch b/package/openssl/openssl-003-CVE-2013-6449.patch
new file mode 100644 (file)
index 0000000..034da7d
--- /dev/null
@@ -0,0 +1,34 @@
+https://bugs.gentoo.org/494816
+https://bugzilla.redhat.com/show_bug.cgi?id=1045363
+http://rt.openssl.org/Ticket/Display.html?id=3200&user=guest&pass=guest
+
+From ca989269a2876bae79393bd54c3e72d49975fc75 Mon Sep 17 00:00:00 2001
+From: "Dr. Stephen Henson" <steve@openssl.org>
+Date: Thu, 19 Dec 2013 14:37:39 +0000
+Subject: [PATCH] Use version in SSL_METHOD not SSL structure.
+
+When deciding whether to use TLS 1.2 PRF and record hash algorithms
+use the version number in the corresponding SSL_METHOD structure
+instead of the SSL structure. The SSL structure version is sometimes
+inaccurate. Note: OpenSSL 1.0.2 and later effectively do this already.
+(CVE-2013-6449)
+---
+ ssl/s3_lib.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ssl/s3_lib.c b/ssl/s3_lib.c
+index bf832bb..c4ef273 100644
+--- a/ssl/s3_lib.c
++++ b/ssl/s3_lib.c
+@@ -4286,7 +4286,7 @@ need to go to SSL_ST_ACCEPT.
+ long ssl_get_algorithm2(SSL *s)
+       {
+       long alg2 = s->s3->tmp.new_cipher->algorithm2;
+-      if (TLS1_get_version(s) >= TLS1_2_VERSION &&
++      if (s->method->version == TLS1_2_VERSION &&
+           alg2 == (SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF))
+               return SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256;
+       return alg2;
+-- 
+1.8.4.3
+
diff --git a/package/openssl/openssl-do-not-build-docs.patch b/package/openssl/openssl-do-not-build-docs.patch
deleted file mode 100644 (file)
index 135a9d3..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-Dont waste time building manpages if we're not going to use em.
-
---- openssl/Makefile.org
-+++ openssl/Makefile.org
-@@ -792,7 +792,7 @@
- dist_pem_h:
-       (cd crypto/pem; $(MAKE) CC='${CC}' SDIRS='${SDIRS}' CFLAG='${CFLAG}' pem.h; $(MAKE) clean)
--install: all install_docs install_sw
-+install: all install_sw
- install_sw:
-       @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
diff --git a/package/openssl/openssl-dont-force-large-file.patch b/package/openssl/openssl-dont-force-large-file.patch
deleted file mode 100644 (file)
index 5b04656..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-[patch]: bss_file.c: don't force largefile mode
----
- crypto/bio/bss_file.c |    3 ---
- 1 file changed, 3 deletions(-)
-
-Index: openssl-0.9.8g/crypto/bio/bss_file.c
-===================================================================
---- openssl-0.9.8g.orig/crypto/bio/bss_file.c
-+++ openssl-0.9.8g/crypto/bio/bss_file.c
-@@ -78,9 +78,6 @@
-  * sequential access of large files without extra "magic" comprise *BSD,
-  * Darwin, IRIX...
-  */
--#ifndef _FILE_OFFSET_BITS
--#define _FILE_OFFSET_BITS 64
--#endif
- #endif
- #include <stdio.h>