Skip to contentSkip to conversation

OpenSSL upgrade & ptest fix

PATCH New Paul Eggleton 1 participant 3 messages Jun 9, 2014

lore
Share & tools
lore
#0 lore raw

cover OpenSSL upgrade & ptest fix

OpenSSL upgrade for master including a number of CVE fixes, plus a fix for some of the ptest tests.

The following changes since commit a3ee9cc7aebaecfa2223552a2c1865a9337de664:

wic: check if BBLAYERS is valid before use (2014-06-06 10:29:22 +0100)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib paule/openssl-upgrade
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/openssl-upgrade

Paul Eggleton (2):
openssl: upgrade to 1.0.1h
openssl: fix ptests

 meta/recipes-connectivity/openssl/openssl.inc      |   3 +-
 .../openssl/heartbeat-test-private-api.patch       |  45 +++
 .../openssl/openssl/openssl-CVE-2010-5298.patch    |  24 --
 .../openssl/openssl-CVE-2014-0198-fix.patch        |  23 --
 .../openssl/openssl/openssl-fix-doc.patch          | 401 ---------------------
 .../openssl/openssl/ptest-deps.patch               |  30 ++
 .../{openssl_1.0.1g.bb => openssl_1.0.1h.bb}       |   9 +-
 7 files changed, 81 insertions(+), 454 deletions(-)
 create mode 100644 meta/recipes-connectivity/openssl/openssl/heartbeat-test-private-api.patch
 delete mode 100644 meta/recipes-connectivity/openssl/openssl/openssl-CVE-2010-5298.patch
 delete mode 100644 meta/recipes-connectivity/openssl/openssl/openssl-CVE-2014-0198-fix.patch
 delete mode 100644 meta/recipes-connectivity/openssl/openssl/openssl-fix-doc.patch
 create mode 100644 meta/recipes-connectivity/openssl/openssl/ptest-deps.patch
 rename meta/recipes-connectivity/openssl/{openssl_1.0.1g.bb => openssl_1.0.1h.bb} (86%)
Signature · 1 line
1.9.3
#1 lore raw

PATCH 1/2 openssl: upgrade to 1.0.1h

Fixes the following security issues:

* CVE-2014-0224
* CVE-2014-0221
* CVE-2014-0195
* CVE-2014-3470

The patch for CVE-2010-5298, CVE-2014-0198 and a fix for building the documentation are integrated upstream in this release and so were dropped. Additionally, a patch from upstream was added in order to fix a failure during do_compile_ptest_base.

A similar upgrade was also submitted by Yao Xinpan <[email protected]> and Lei Maohui <[email protected]>.

---
 .../openssl/heartbeat-test-private-api.patch       |  45 +++
 .../openssl/openssl/openssl-CVE-2010-5298.patch    |  24 --
 .../openssl/openssl-CVE-2014-0198-fix.patch        |  23 --
 .../openssl/openssl/openssl-fix-doc.patch          | 401 ---------------------
 .../{openssl_1.0.1g.bb => openssl_1.0.1h.bb}       |   8 +-
 5 files changed, 48 insertions(+), 453 deletions(-)
 create mode 100644 meta/recipes-connectivity/openssl/openssl/heartbeat-test-private-api.patch
 delete mode 100644 meta/recipes-connectivity/openssl/openssl/openssl-CVE-2010-5298.patch
 delete mode 100644 meta/recipes-connectivity/openssl/openssl/openssl-CVE-2014-0198-fix.patch
 delete mode 100644 meta/recipes-connectivity/openssl/openssl/openssl-fix-doc.patch
 rename meta/recipes-connectivity/openssl/{openssl_1.0.1g.bb => openssl_1.0.1h.bb} (86%)
meta/recipes-connectivity/openssl/openssl/heartbeat-test-private-api.patch new file +45 -0
new file mode 100644
index 0000000..3c77dfc
@@ -0,0 +1,45 @@
+From 2e251ba8feaa696f9408a19336d1fbab148df55e Mon Sep 17 00:00:00 2001
+From: Kurt Roeckx <[email protected]>
+Date: Sat, 7 Jun 2014 13:32:23 +0200
+Subject: [PATCH] Link heartbeat_test with the static version of the libraries
+
+It's using an internal API that that might not be available in the shared
+library.
+
+Upstream-Status: Submitted [https://github.com/openssl/openssl/pull/125]
+Signed-off-by: Paul Eggleton <[email protected]>
+
+---
+ test/Makefile | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/test/Makefile b/test/Makefile
+index f1816ac..1dd7bb9 100644
+--- a/test/Makefile
++++ b/test/Makefile
+@@ -420,6 +420,13 @@ BUILD_CMD=shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
+ 		LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
+ 		link_app.$${shlib_target}
+ 
++BUILD_CMD_STATIC=shlib_target=; \
++	LIBRARIES="$(DLIBSSL) $(DLIBCRYPTO) $(LIBKRB5)"; \
++	$(MAKE) -f $(TOP)/Makefile.shared -e \
++		APPNAME=$$target$(EXE_EXT) OBJECTS="$$target.o" \
++		LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
++		link_app.$${shlib_target}
++
+ $(RSATEST)$(EXE_EXT): $(RSATEST).o $(DLIBCRYPTO)
+ 	@target=$(RSATEST); $(BUILD_CMD)
+ 
+@@ -618,7 +625,7 @@ $(V3NAMETEST)$(EXE_EXT): $(V3NAMETEST).o $(DLIBCRYPTO)
+ 	@target=$(V3NAMETEST); $(BUILD_CMD)
+ 
+ $(HEARTBEATTEST)$(EXE_EXT): $(HEARTBEATTEST).o $(DLIBCRYPTO)
+-	@target=$(HEARTBEATTEST); $(BUILD_CMD)
++	@target=$(HEARTBEATTEST); $(BUILD_CMD_STATIC)
+ 
+ #$(AESTEST).o: $(AESTEST).c
+ #	$(CC) -c $(CFLAGS) -DINTERMEDIATE_VALUE_KAT -DTRACE_KAT_MCT $(AESTEST).c
+-- 
+1.9.3
+
meta/recipes-connectivity/openssl/openssl/openssl-CVE-2010-5298.patch deleted +0 -24
deleted file mode 100644
index 417a774..0000000
@@ -1,24 +0,0 @@
-openssl fix for CVE-2010-5298
-
-Upstream-Status: Backport
-
-Race condition in the ssl3_read_bytes function in s3_pkt.c in OpenSSL
-through 1.0.1g, when SSL_MODE_RELEASE_BUFFERS is enabled, allows remote
-attackers to inject data across sessions or cause a denial of service
-(use-after-free and parsing error) via an SSL connection in a
-multithreaded environment.
-
-http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-5298
-
-Signed-off-by: Yue Tao <[email protected]>
---- a/ssl/s3_pkt.c
-+++ b/ssl/s3_pkt.c
-@@ -1013,7 +1013,7 @@ start:
- 				{
- 				s->rstate=SSL_ST_READ_HEADER;
- 				rr->off=0;
--				if (s->mode & SSL_MODE_RELEASE_BUFFERS)
-+				if (s->mode & SSL_MODE_RELEASE_BUFFERS && s->s3->rbuf.left == 0)
- 					ssl3_release_read_buffer(s);
- 				}
- 			}
meta/recipes-connectivity/openssl/openssl/openssl-CVE-2014-0198-fix.patch deleted +0 -23
deleted file mode 100644
index 4c51d74..0000000
@@ -1,23 +0,0 @@
-Upstream-Status: Backport
-
-Reference: https://bugzilla.redhat.com/show_bug.cgi?id=1093837
-
-CVE-2014-0198: An attacker can trigger generation of an SSL
-alert which could cause a null pointer dereference.
-
-Signed-off-by: Maxin B. John <[email protected]>
----
-diff -Naur openssl-1.0.1g-orig/ssl/s3_pkt.c openssl-1.0.1g/ssl/s3_pkt.c
---- openssl-1.0.1g-orig/ssl/s3_pkt.c	2014-03-17 17:14:20.000000000 +0100
-+++ openssl-1.0.1g/ssl/s3_pkt.c	2014-05-06 02:32:43.862587660 +0200
-@@ -657,6 +657,10 @@
- 		if (i <= 0)
- 			return(i);
- 		/* if it went, fall through and send more stuff */
-+		/* we may have released our buffer, so get it again */
-+		if (wb->buf == NULL)
-+			if (!ssl3_setup_write_buffer(s))
-+				return -1;
- 		}
- 
- 	if (len == 0 && !create_empty_fragment)
meta/recipes-connectivity/openssl/openssl/openssl-fix-doc.patch deleted +0 -401

401 lines not on this page · raw message

meta/recipes-connectivity/openssl/openssl_1.0.1h.bb renamed from meta/recipes-connectivity/openssl/openssl_1.0.1g.bb +3 -5
similarity index 86%
rename from meta/recipes-connectivity/openssl/openssl_1.0.1g.bb
rename to meta/recipes-connectivity/openssl/openssl_1.0.1h.bb
index bbf1455..ebb1029 100644
@@ -27,21 +27,19 @@ SRC_URI += "file://configure-targets.patch \
             file://debian/no-symbolic.patch \
             file://debian/debian-targets.patch \
             file://openssl_fix_for_x32.patch \
-            file://openssl-fix-doc.patch \
             file://fix-cipher-des-ede3-cfb1.patch \
             file://openssl-avoid-NULL-pointer-dereference-in-EVP_DigestInit_ex.patch \
             file://openssl-avoid-NULL-pointer-dereference-in-dh_pub_encode.patch \
             file://initial-aarch64-bits.patch \
             file://find.pl \
             file://openssl-fix-des.pod-error.patch \
-            file://openssl-CVE-2014-0198-fix.patch \
             file://Makefiles-ptest.patch \
+            file://heartbeat-test-private-api.patch \
             file://run-ptest \
-            file://openssl-CVE-2010-5298.patch \
            "
 
-SRC_URI[md5sum] = "de62b43dfcd858e66a74bee1c834e959"
-SRC_URI[sha256sum] = "53cb818c3b90e507a8348f4f5eaedb05d8bfe5358aabb508b7263cc670c3e028"
+SRC_URI[md5sum] = "8d6d684a9430d5cc98a62a5d8fbda8cf"
+SRC_URI[sha256sum] = "9d1c8a9836aa63e2c6adb684186cbd4371c9e9dcc01d6e3bb447abf2d4d3d093"
 
 PACKAGES =+ " \
 	${PN}-engines \
Signature · 1 line
1.9.3
#2 lore raw

PATCH 2/2 openssl: fix ptests

In reply to Paul Eggleton

Add some missing dependencies and fix the Makefile in order to get most of the ptest tests working (specifically test_bn, test_verify, test_cms, test_srp and test_heartbeat). test_verify still fails for unknown reasons (perhaps some of the now expired certificates weren't meant to have expired as far as the test is concerned?) but at least it has the certificates to run now.

---
 meta/recipes-connectivity/openssl/openssl.inc      |  3 ++-
 .../openssl/openssl/ptest-deps.patch               | 30 ++++++++++++++++++++++
 .../recipes-connectivity/openssl/openssl_1.0.1h.bb |  1 +
 3 files changed, 33 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-connectivity/openssl/openssl/ptest-deps.patch
meta/recipes-connectivity/openssl/openssl.inc +2 -1
index 6c86588..b839c00 100644
@@ -47,7 +47,7 @@ FILES_${PN}-dev += "${base_libdir}/libcrypto${SOLIBSDEV}"
 FILES_openssl-conf = "${libdir}/ssl/openssl.cnf"
 CONFFILES_openssl-conf = "${libdir}/ssl/openssl.cnf"
 RRECOMMENDS_libcrypto += "openssl-conf"
-RDEPENDS_${PN}-ptest += "${PN}-misc make"
+RDEPENDS_${PN}-ptest += "${PN}-misc make perl perl-module-filehandle bc"
 
 do_configure_prepend_darwin () {
 	sed -i -e '/version-script=openssl\.ld/d' Configure
@@ -176,6 +176,7 @@ do_install () {
 
 do_install_ptest () {
 	cp -r Makefile test ${D}${PTEST_PATH}
+	cp -r certs ${D}${PTEST_PATH}
 	mkdir -p ${D}${PTEST_PATH}/apps
 	ln -sf /usr/lib/ssl/misc/CA.sh  ${D}${PTEST_PATH}/apps
 	ln -sf /usr/lib/ssl/openssl.cnf ${D}${PTEST_PATH}/apps
meta/recipes-connectivity/openssl/openssl/ptest-deps.patch new file +30 -0
new file mode 100644
index 0000000..527e10c
@@ -0,0 +1,30 @@
+Remove Makefile dependencies for test targets
+
+These are probably here because the executables aren't always built for
+other platforms (e.g. Windows); however we can safely assume they'll
+always be there. None of the other test targets have such dependencies
+and if we don't remove them, make tries to rebuild the executables and
+fails during run-ptest.
+
+Upstream-Status: Inappropriate [config]
+
+Signed-off-by: Paul Eggleton <[email protected]>
+
+diff --git a/test/Makefile b/test/Makefile
+index e6fcfb4..5ae043b 100644
+--- a/test/Makefile
++++ b/test/Makefile
+@@ -322,11 +322,11 @@ test_cms:
+ 	@echo "CMS consistency test"
+ 	$(PERL) cms-test.pl
+ 
+-test_srp: $(SRPTEST)$(EXE_EXT)
++test_srp:
+ 	@echo "Test SRP"
+ 	../util/shlib_wrap.sh ./srptest
+ 
+-test_heartbeat: $(HEARTBEATTEST)$(EXE_EXT)
++test_heartbeat:
+ 	../util/shlib_wrap.sh ./$(HEARTBEATTEST)
+ 
+ lint:
meta/recipes-connectivity/openssl/openssl_1.0.1h.bb +1 -0
index ebb1029..ddaaba8 100644
@@ -35,6 +35,7 @@ SRC_URI += "file://configure-targets.patch \
             file://openssl-fix-des.pod-error.patch \
             file://Makefiles-ptest.patch \
             file://heartbeat-test-private-api.patch \
+            file://ptest-deps.patch \
             file://run-ptest \
            "
 
Signature · 1 line
1.9.3