summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru Moise <alexandru.moise@windriver.com>2017-02-07 13:48:47 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-02-08 12:00:21 +0000
commit8ba5b9eae34bbab537954ccee1726c7ee7a82750 (patch)
tree23e66063281ba3e18b5e4c583ac9a694fe4c856d
parenta2f06ef25486bbdc10b1dd5812648c7e909a3643 (diff)
downloadpoky-8ba5b9eae34bbab537954ccee1726c7ee7a82750.tar.gz
openssl: CVE: CVE-2017-3731
If an SSL/TLS server or client is running on a 32-bit host, and a specific cipher is being used, then a truncated packet can cause that server or client to perform an out-of-bounds read, usually resulting in a crash. Backported from: https://github.com/openssl/openssl/commit/8e20499629b6bcf868d0072c7011e590b5c2294d https://github.com/openssl/openssl/commit/2198b3a55de681e1f3c23edb0586afe13f438051 * CVE: CVE-2017-3731 Upstream-status: Backport (From OE-Core rev: 1fe1cb3e6e03b4f7f0d30b2b67edc8809a18fe70) Signed-off-by: Alexandru Moise <alexandru.moise@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-connectivity/openssl/openssl/0001-CVE-2017-3731.patch46
-rw-r--r--meta/recipes-connectivity/openssl/openssl/0002-CVE-2017-3731.patch53
-rw-r--r--meta/recipes-connectivity/openssl/openssl_1.0.2j.bb2
3 files changed, 101 insertions, 0 deletions
diff --git a/meta/recipes-connectivity/openssl/openssl/0001-CVE-2017-3731.patch b/meta/recipes-connectivity/openssl/openssl/0001-CVE-2017-3731.patch
new file mode 100644
index 0000000000..04ef526826
--- /dev/null
+++ b/meta/recipes-connectivity/openssl/openssl/0001-CVE-2017-3731.patch
@@ -0,0 +1,46 @@
1From 0cde9a9645c949fd0acf657dadc747676245cfaf Mon Sep 17 00:00:00 2001
2From: Alexandru Moise <alexandru.moise@windriver.com>
3Date: Tue, 7 Feb 2017 11:13:19 +0200
4Subject: [PATCH 1/2] crypto/evp: harden RC4_MD5 cipher.
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9Originally a crash in 32-bit build was reported CHACHA20-POLY1305
10cipher. The crash is triggered by truncated packet and is result
11of excessive hashing to the edge of accessible memory (or bogus
12MAC value is produced if x86 MD5 assembly module is involved). Since
13hash operation is read-only it is not considered to be exploitable
14beyond a DoS condition.
15
16Thanks to Robert Święcki for report.
17
18CVE-2017-3731
19
20Backported from upstream commit:
218e20499629b6bcf868d0072c7011e590b5c2294d
22
23Upstream-Status: Backport
24
25Reviewed-by: Rich Salz <rsalz@openssl.org>
26Signed-off-by: Alexandru Moise <alexandru.moise@windriver.com>
27---
28 crypto/evp/e_rc4_hmac_md5.c | 2 ++
29 1 file changed, 2 insertions(+)
30
31diff --git a/crypto/evp/e_rc4_hmac_md5.c b/crypto/evp/e_rc4_hmac_md5.c
32index 5e92855..3293419 100644
33--- a/crypto/evp/e_rc4_hmac_md5.c
34+++ b/crypto/evp/e_rc4_hmac_md5.c
35@@ -269,6 +269,8 @@ static int rc4_hmac_md5_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,
36 len = p[arg - 2] << 8 | p[arg - 1];
37
38 if (!ctx->encrypt) {
39+ if (len < MD5_DIGEST_LENGTH)
40+ return -1;
41 len -= MD5_DIGEST_LENGTH;
42 p[arg - 2] = len >> 8;
43 p[arg - 1] = len;
44--
452.10.2
46
diff --git a/meta/recipes-connectivity/openssl/openssl/0002-CVE-2017-3731.patch b/meta/recipes-connectivity/openssl/openssl/0002-CVE-2017-3731.patch
new file mode 100644
index 0000000000..b56b2d5bd3
--- /dev/null
+++ b/meta/recipes-connectivity/openssl/openssl/0002-CVE-2017-3731.patch
@@ -0,0 +1,53 @@
1From 6427f1accc54b515bb899370f1a662bfcb1caa52 Mon Sep 17 00:00:00 2001
2From: Alexandru Moise <alexandru.moise@windriver.com>
3Date: Tue, 7 Feb 2017 11:16:13 +0200
4Subject: [PATCH 2/2] crypto/evp: harden AEAD ciphers.
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9Originally a crash in 32-bit build was reported CHACHA20-POLY1305
10cipher. The crash is triggered by truncated packet and is result
11of excessive hashing to the edge of accessible memory. Since hash
12operation is read-only it is not considered to be exploitable
13beyond a DoS condition. Other ciphers were hardened.
14
15Thanks to Robert Święcki for report.
16
17CVE-2017-3731
18
19Backported from upstream commit:
202198b3a55de681e1f3c23edb0586afe13f438051
21
22Upstream-Status: Backport
23
24Reviewed-by: Rich Salz <rsalz@openssl.org>
25Signed-off-by: Alexandru Moise <alexandru.moise@windriver.com>
26---
27 crypto/evp/e_aes.c | 7 ++++++-
28 1 file changed, 6 insertions(+), 1 deletion(-)
29
30diff --git a/crypto/evp/e_aes.c b/crypto/evp/e_aes.c
31index 1734a82..16dcd10 100644
32--- a/crypto/evp/e_aes.c
33+++ b/crypto/evp/e_aes.c
34@@ -1235,10 +1235,15 @@ static int aes_gcm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
35 {
36 unsigned int len = c->buf[arg - 2] << 8 | c->buf[arg - 1];
37 /* Correct length for explicit IV */
38+ if (len < EVP_GCM_TLS_EXPLICIT_IV_LEN)
39+ return 0;
40 len -= EVP_GCM_TLS_EXPLICIT_IV_LEN;
41 /* If decrypting correct for tag too */
42- if (!c->encrypt)
43+ if (!c->encrypt) {
44+ if (len < EVP_GCM_TLS_TAG_LEN)
45+ return 0;
46 len -= EVP_GCM_TLS_TAG_LEN;
47+ }
48 c->buf[arg - 2] = len >> 8;
49 c->buf[arg - 1] = len & 0xff;
50 }
51--
522.10.2
53
diff --git a/meta/recipes-connectivity/openssl/openssl_1.0.2j.bb b/meta/recipes-connectivity/openssl/openssl_1.0.2j.bb
index f2aca36eca..9a7cdedd05 100644
--- a/meta/recipes-connectivity/openssl/openssl_1.0.2j.bb
+++ b/meta/recipes-connectivity/openssl/openssl_1.0.2j.bb
@@ -41,6 +41,8 @@ SRC_URI += "file://find.pl;subdir=${BP}/util/ \
41 file://parallel.patch \ 41 file://parallel.patch \
42 file://openssl-util-perlpath.pl-cwd.patch \ 42 file://openssl-util-perlpath.pl-cwd.patch \
43 file://CVE-2016-7055.patch \ 43 file://CVE-2016-7055.patch \
44 file://0001-CVE-2017-3731.patch \
45 file://0002-CVE-2017-3731.patch \
44 " 46 "
45SRC_URI[md5sum] = "96322138f0b69e61b7212bc53d5e912b" 47SRC_URI[md5sum] = "96322138f0b69e61b7212bc53d5e912b"
46SRC_URI[sha256sum] = "e7aff292be21c259c6af26469c7a9b3ba26e9abaaffd325e3dccc9785256c431" 48SRC_URI[sha256sum] = "e7aff292be21c259c6af26469c7a9b3ba26e9abaaffd325e3dccc9785256c431"