summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSona Sarmadi <sona.sarmadi@enea.com>2015-10-21 09:37:45 +0200
committerTudor Florea <tudor.florea@enea.com>2015-10-22 09:56:41 +0200
commit77050ff91f7d3760e89ececb258929ac8ac67396 (patch)
treeed2dff9bd61a0da6feaf77f2b10c9cb4c6345be2
parent635d320abfa6dc3c0e1d00e3ceae567dd0e55a5b (diff)
downloadmeta-hierofalcon-77050ff91f7d3760e89ececb258929ac8ac67396.tar.gz
kernel: CVE-2015-1333
Fixes denial of service due to memory leak in add_key() References: http://www.openwall.com/lists/oss-security/2015/07/27/7 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-1333 Upstream fix: https://git.kernel.org/cgit/linux/kernel/git/stable/ linux-stable.git/commit/?id=4fd5dc9eece297f49f16f82422ead3a28b11ea70 Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> Signed-off-by: Tudor Florea <tudor.florea@enea.com>
-rw-r--r--recipes-kernel/linux/linux-hierofalcon-3.19/keys-CVE-2015-1333.patch57
-rw-r--r--recipes-kernel/linux/linux-hierofalcon-4.1/keys-CVE-2015-1333.patch52
-rw-r--r--recipes-kernel/linux/linux-hierofalcon_3.19.bb2
-rw-r--r--recipes-kernel/linux/linux-hierofalcon_4.1.bb2
4 files changed, 113 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-hierofalcon-3.19/keys-CVE-2015-1333.patch b/recipes-kernel/linux/linux-hierofalcon-3.19/keys-CVE-2015-1333.patch
new file mode 100644
index 0000000..4181252
--- /dev/null
+++ b/recipes-kernel/linux/linux-hierofalcon-3.19/keys-CVE-2015-1333.patch
@@ -0,0 +1,57 @@
1From 66db51c9f7b2fe7ebdfa753b2aa9abbb9feddc87 Mon Sep 17 00:00:00 2001
2From: Colin Ian King <colin.king@canonical.com>
3Date: Mon, 27 Jul 2015 15:23:43 +0100
4Subject: [PATCH] KEYS: ensure we free the assoc array edit if edit is valid
5
6[ Upstream commit HEAD ]
7
8commit ca4da5dd1f99fe9c59f1709fb43e818b18ad20e0 upstream.
9
10__key_link_end is not freeing the associated array edit structure
11and this leads to a 512 byte memory leak each time an identical
12existing key is added with add_key().
13
14The reason the add_key() system call returns okay is that
15key_create_or_update() calls __key_link_begin() before checking to see
16whether it can update a key directly rather than adding/replacing - which
17it turns out it can. Thus __key_link() is not called through
18__key_instantiate_and_link() and __key_link_end() must cancel the edit.
19
20CVE-2015-1333
21
22Upstream-Status: Backport
23
24Signed-off-by: Colin Ian King <colin.king@canonical.com>
25Signed-off-by: David Howells <dhowells@redhat.com>
26Signed-off-by: James Morris <james.l.morris@oracle.com>
27Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
28
29(cherry picked from commit c9cd9b18dac801040ada16562dc579d5ac366d75)
30Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
31Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>
32---
33 security/keys/keyring.c | 8 +++++---
34 1 file changed, 5 insertions(+), 3 deletions(-)
35
36diff --git a/security/keys/keyring.c b/security/keys/keyring.c
37index e72548b..d334370 100644
38--- a/security/keys/keyring.c
39+++ b/security/keys/keyring.c
40@@ -1181,9 +1181,11 @@ void __key_link_end(struct key *keyring,
41 if (index_key->type == &key_type_keyring)
42 up_write(&keyring_serialise_link_sem);
43
44- if (edit && !edit->dead_leaf) {
45- key_payload_reserve(keyring,
46- keyring->datalen - KEYQUOTA_LINK_BYTES);
47+ if (edit) {
48+ if (!edit->dead_leaf) {
49+ key_payload_reserve(keyring,
50+ keyring->datalen - KEYQUOTA_LINK_BYTES);
51+ }
52 assoc_array_cancel_edit(edit);
53 }
54 up_write(&keyring->sem);
55--
561.9.1
57
diff --git a/recipes-kernel/linux/linux-hierofalcon-4.1/keys-CVE-2015-1333.patch b/recipes-kernel/linux/linux-hierofalcon-4.1/keys-CVE-2015-1333.patch
new file mode 100644
index 0000000..5927c50
--- /dev/null
+++ b/recipes-kernel/linux/linux-hierofalcon-4.1/keys-CVE-2015-1333.patch
@@ -0,0 +1,52 @@
1From 4fd5dc9eece297f49f16f82422ead3a28b11ea70 Mon Sep 17 00:00:00 2001
2From: Colin Ian King <colin.king@canonical.com>
3Date: Mon, 27 Jul 2015 15:23:43 +0100
4Subject: [PATCH] KEYS: ensure we free the assoc array edit if edit is valid
5
6commit ca4da5dd1f99fe9c59f1709fb43e818b18ad20e0 upstream.
7
8__key_link_end is not freeing the associated array edit structure
9and this leads to a 512 byte memory leak each time an identical
10existing key is added with add_key().
11
12The reason the add_key() system call returns okay is that
13key_create_or_update() calls __key_link_begin() before checking to see
14whether it can update a key directly rather than adding/replacing - which
15it turns out it can. Thus __key_link() is not called through
16__key_instantiate_and_link() and __key_link_end() must cancel the edit.
17
18CVE-2015-1333
19
20Upstream-Status: Backport
21
22Signed-off-by: Colin Ian King <colin.king@canonical.com>
23Signed-off-by: David Howells <dhowells@redhat.com>
24Signed-off-by: James Morris <james.l.morris@oracle.com>
25Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
26Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>
27---
28 security/keys/keyring.c | 8 +++++---
29 1 file changed, 5 insertions(+), 3 deletions(-)
30
31diff --git a/security/keys/keyring.c b/security/keys/keyring.c
32index e72548b..d334370 100644
33--- a/security/keys/keyring.c
34+++ b/security/keys/keyring.c
35@@ -1181,9 +1181,11 @@ void __key_link_end(struct key *keyring,
36 if (index_key->type == &key_type_keyring)
37 up_write(&keyring_serialise_link_sem);
38
39- if (edit && !edit->dead_leaf) {
40- key_payload_reserve(keyring,
41- keyring->datalen - KEYQUOTA_LINK_BYTES);
42+ if (edit) {
43+ if (!edit->dead_leaf) {
44+ key_payload_reserve(keyring,
45+ keyring->datalen - KEYQUOTA_LINK_BYTES);
46+ }
47 assoc_array_cancel_edit(edit);
48 }
49 up_write(&keyring->sem);
50--
511.9.1
52
diff --git a/recipes-kernel/linux/linux-hierofalcon_3.19.bb b/recipes-kernel/linux/linux-hierofalcon_3.19.bb
index 25eb602..1a85f72 100644
--- a/recipes-kernel/linux/linux-hierofalcon_3.19.bb
+++ b/recipes-kernel/linux/linux-hierofalcon_3.19.bb
@@ -1,4 +1,5 @@
1DESCRIPTION = "Linux kernel for AMD Hierofalcon Cortex-A57" 1DESCRIPTION = "Linux kernel for AMD Hierofalcon Cortex-A57"
2FILESEXTRAPATHS_prepend := "${THISDIR}/linux-hierofalcon-3.19:"
2 3
3COMPATIBLE_MACHINE = "hierofalcon*" 4COMPATIBLE_MACHINE = "hierofalcon*"
4 5
@@ -14,6 +15,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.19;branch="standard/qemuarm6
14 file://03-arm64-don-t-set-READ_IMPLIES_EXEC-for-EM_AARCH64-ELF.patch \ 15 file://03-arm64-don-t-set-READ_IMPLIES_EXEC-for-EM_AARCH64-ELF.patch \
15 file://319-Hierofalcon-Update-xgbe-drivers-for-B0-board.patch \ 16 file://319-Hierofalcon-Update-xgbe-drivers-for-B0-board.patch \
16 file://defconfig \ 17 file://defconfig \
18 file://keys-CVE-2015-1333.patch \
17 " 19 "
18 20
19S = "${WORKDIR}/git" 21S = "${WORKDIR}/git"
diff --git a/recipes-kernel/linux/linux-hierofalcon_4.1.bb b/recipes-kernel/linux/linux-hierofalcon_4.1.bb
index a9159b1..1140927 100644
--- a/recipes-kernel/linux/linux-hierofalcon_4.1.bb
+++ b/recipes-kernel/linux/linux-hierofalcon_4.1.bb
@@ -1,4 +1,5 @@
1DESCRIPTION = "Linux kernel for AMD Hierofalcon Cortex-A57" 1DESCRIPTION = "Linux kernel for AMD Hierofalcon Cortex-A57"
2FILESEXTRAPATHS_prepend := "${THISDIR}/linux-hierofalcon-4.1:"
2 3
3COMPATIBLE_MACHINE = "hierofalcon*" 4COMPATIBLE_MACHINE = "hierofalcon*"
4 5
@@ -20,6 +21,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.1;branch="standard/qemuarm64
20 file://412-7-styx-linux-tracking.git-f9a9d954f23b967cd26338afda9a0a96afe62c25.patch \ 21 file://412-7-styx-linux-tracking.git-f9a9d954f23b967cd26338afda9a0a96afe62c25.patch \
21 file://412-styx-Fix-build-issues-after-porting-PCI-patches-to-4.1.2-.patch \ 22 file://412-styx-Fix-build-issues-after-porting-PCI-patches-to-4.1.2-.patch \
22 file://defconfig \ 23 file://defconfig \
24 file://keys-CVE-2015-1333.patch \
23 " 25 "
24 26
25S = "${WORKDIR}/git" 27S = "${WORKDIR}/git"