summaryrefslogtreecommitdiffstats
path: root/recipes-kernel/linux/linux-intel/CVE-2017-11176.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-kernel/linux/linux-intel/CVE-2017-11176.patch')
-rw-r--r--recipes-kernel/linux/linux-intel/CVE-2017-11176.patch52
1 files changed, 52 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-intel/CVE-2017-11176.patch b/recipes-kernel/linux/linux-intel/CVE-2017-11176.patch
new file mode 100644
index 0000000..e5e1ad3
--- /dev/null
+++ b/recipes-kernel/linux/linux-intel/CVE-2017-11176.patch
@@ -0,0 +1,52 @@
1From f991af3daabaecff34684fd51fac80319d1baad1 Mon Sep 17 00:00:00 2001
2From: Cong Wang <xiyou.wangcong@gmail.com>
3Date: Sun, 9 Jul 2017 13:19:55 -0700
4Subject: mqueue: fix a use-after-free in sys_mq_notify()
5
6The retry logic for netlink_attachskb() inside sys_mq_notify()
7is nasty and vulnerable:
8
91) The sock refcnt is already released when retry is needed
102) The fd is controllable by user-space because we already
11 release the file refcnt
12
13so we when retry but the fd has been just closed by user-space
14during this small window, we end up calling netlink_detachskb()
15on the error path which releases the sock again, later when
16the user-space closes this socket a use-after-free could be
17triggered.
18
19Setting 'sock' to NULL here should be sufficient to fix it.
20CVE: CVE-2017-11176
21Upstream-Status: Backport [from: https://git.kernel.org/linus/f991af3daabaecff34684fd51fac80319d1baad1]
22
23Reported-by: GeneBlue <geneblue.mail@gmail.com>
24Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
25Cc: Andrew Morton <akpm@linux-foundation.org>
26Cc: Manfred Spraul <manfred@colorfullife.com>
27Cc: stable@kernel.org
28Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
29Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>
30---
31 ipc/mqueue.c | 4 +++-
32 1 file changed, 3 insertions(+), 1 deletion(-)
33
34diff --git a/ipc/mqueue.c b/ipc/mqueue.c
35index c9ff943..eb1391b 100644
36--- a/ipc/mqueue.c
37+++ b/ipc/mqueue.c
38@@ -1270,8 +1270,10 @@ retry:
39
40 timeo = MAX_SCHEDULE_TIMEOUT;
41 ret = netlink_attachskb(sock, nc, &timeo, NULL);
42- if (ret == 1)
43+ if (ret == 1) {
44+ sock = NULL;
45 goto retry;
46+ }
47 if (ret) {
48 sock = NULL;
49 nc = NULL;
50--
51cgit v1.1
52