summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Wellving <andreas.wellving@enea.com>2019-05-21 15:45:56 +0200
committerAdrian Mangeac <Adrian.Mangeac@enea.com>2019-05-21 17:24:26 +0200
commit6c89eabc04466ab2e6caf65a227f3a91837fcb5e (patch)
treed68993a5576520ddd853e6f7f0d72c5d83355b1d
parent6e248f8c7f9ee0c198a3f6024c61eb49a7951613 (diff)
downloadenea-kernel-cache-6c89eabc04466ab2e6caf65a227f3a91837fcb5e.tar.gz
futex: CVE-2018-6927
futex: Prevent overflow by strengthen input validation Reference: https://nvd.nist.gov/vuln/detail/CVE-2018-6927 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-4.14.y&id=17ae6ccfe5dd85605dc44534348b506f95d16a61 Change-Id: Iba6e207aec67070f34a7df6dbc95b841b0cf2d55 Signed-off-by: Andreas Wellving <andreas.wellving@enea.com>
-rw-r--r--patches/cve/CVE-2018-6927-futex-Prevent-overflow-by-strengthen-input-validatio.patch46
1 files changed, 46 insertions, 0 deletions
diff --git a/patches/cve/CVE-2018-6927-futex-Prevent-overflow-by-strengthen-input-validatio.patch b/patches/cve/CVE-2018-6927-futex-Prevent-overflow-by-strengthen-input-validatio.patch
new file mode 100644
index 0000000..d054de7
--- /dev/null
+++ b/patches/cve/CVE-2018-6927-futex-Prevent-overflow-by-strengthen-input-validatio.patch
@@ -0,0 +1,46 @@
1From 17ae6ccfe5dd85605dc44534348b506f95d16a61 Mon Sep 17 00:00:00 2001
2From: Li Jinyue <lijinyue@huawei.com>
3Date: Thu, 14 Dec 2017 17:04:54 +0800
4Subject: [PATCH] futex: Prevent overflow by strengthen input validation
5
6commit fbe0e839d1e22d88810f3ee3e2f1479be4c0aa4a upstream.
7
8UBSAN reports signed integer overflow in kernel/futex.c:
9
10 UBSAN: Undefined behaviour in kernel/futex.c:2041:18
11 signed integer overflow:
12 0 - -2147483648 cannot be represented in type 'int'
13
14Add a sanity check to catch negative values of nr_wake and nr_requeue.
15
16CVE: CVE-2018-6927
17Upstream-Status: Backport [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-4.14.y&id=17ae6ccfe5dd85605dc44534348b506f95d16a61]
18
19Signed-off-by: Li Jinyue <lijinyue@huawei.com>
20Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
21Cc: peterz@infradead.org
22Cc: dvhart@infradead.org
23Link: https://lkml.kernel.org/r/1513242294-31786-1-git-send-email-lijinyue@huawei.com
24Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
25Signed-off-by: Andreas Wellving <andreas.wellving@enea.com>
26---
27 kernel/futex.c | 3 +++
28 1 file changed, 3 insertions(+)
29
30diff --git a/kernel/futex.c b/kernel/futex.c
31index 29ac5b64e7c7..52b3f4703158 100644
32--- a/kernel/futex.c
33+++ b/kernel/futex.c
34@@ -1878,6 +1878,9 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
35 struct futex_q *this, *next;
36 DEFINE_WAKE_Q(wake_q);
37
38+ if (nr_wake < 0 || nr_requeue < 0)
39+ return -EINVAL;
40+
41 /*
42 * When PI not supported: return -ENOSYS if requeue_pi is true,
43 * consequently the compiler knows requeue_pi is always false past
44--
452.20.1
46