Browse code

kernels: Fix CVE-2017-15115 by updating to 4.4.103

Upstream commit df80cd9b28b9ebaa284a41df611dbf3a2d05ca74 (sctp: do not
peel off an assoc from one netns to another one) fixes this CVE, and
has been included in linux-stable 4.4.103. So update to 4.4.103 to get
the fix.

While at it, remove the local patch "xen-blkback: don't leak stack
data via response ring", as it has been included in linux-stable
4.4.100.

Change-Id: I2d7aba1a905bbd81e74fa00bee5865100cb5c175
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/4426
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Alexey Makhalov <amakhalov@vmware.com>

Srivatsa S. Bhat authored on 2017/12/05 07:19:13
Showing 4 changed files
... ...
@@ -1,6 +1,6 @@
1 1
 Summary:	Linux API header files
2 2
 Name:		linux-api-headers
3
-Version:	4.4.99
3
+Version:	4.4.103
4 4
 Release:	1%{?dist}
5 5
 License:	GPLv2
6 6
 URL:		http://www.kernel.org/
... ...
@@ -8,7 +8,7 @@ Group:		System Environment/Kernel
8 8
 Vendor:		VMware, Inc.
9 9
 Distribution: Photon
10 10
 Source0:    	http://www.kernel.org/pub/linux/kernel/v4.x/linux-%{version}.tar.xz
11
-%define sha1 linux=b9e3193df23090404e5b7fc2b0d48d153b892e8b
11
+%define sha1 linux=e1de56b56f0a6662224d57a34b4dcd8f01b79926
12 12
 BuildArch:	noarch
13 13
 # From SPECS/linux and used by linux-esx only
14 14
 # It provides f*xattrat syscalls
... ...
@@ -29,6 +29,8 @@ find /%{buildroot}%{_includedir} \( -name .install -o -name ..install.cmd \) -de
29 29
 %defattr(-,root,root)
30 30
 %{_includedir}/*
31 31
 %changelog
32
+*   Mon Dec 04 2017 Srivatsa S. Bhat <srivatsa@csail.mit.edu> 4.4.103-1
33
+-   Version update
32 34
 *   Mon Nov 20 2017 Srivatsa S. Bhat <srivatsa@csail.mit.edu> 4.4.99-1
33 35
 -   Version update
34 36
 *   Tue Nov 07 2017 Alexey Makhalov <amakhalov@vmware.com> 4.4.96-1
... ...
@@ -1,7 +1,7 @@
1 1
 %global security_hardening none
2 2
 Summary:       Kernel
3 3
 Name:          linux-esx
4
-Version:       4.4.99
4
+Version:       4.4.103
5 5
 Release:       1%{?dist}
6 6
 License:       GPLv2
7 7
 URL:           http://www.kernel.org/
... ...
@@ -9,7 +9,7 @@ Group:         System Environment/Kernel
9 9
 Vendor:        VMware, Inc.
10 10
 Distribution:  Photon
11 11
 Source0:       http://www.kernel.org/pub/linux/kernel/v4.x/linux-%{version}.tar.xz
12
-%define sha1 linux=b9e3193df23090404e5b7fc2b0d48d153b892e8b
12
+%define sha1 linux=e1de56b56f0a6662224d57a34b4dcd8f01b79926
13 13
 Source1:       config-esx
14 14
 Patch0:        double-tcp_mem-limits.patch
15 15
 Patch1:        linux-4.4-sysctl-sched_weighted_cpuload_uses_rla.patch
... ...
@@ -190,6 +190,8 @@ ln -sf linux-%{uname_r}.cfg /boot/photon.cfg
190 190
 /usr/src/linux-headers-%{uname_r}
191 191
 
192 192
 %changelog
193
+*   Mon Dec 04 2017 Srivatsa S. Bhat <srivatsa@csail.mit.edu> 4.4.103-1
194
+-   Version update
193 195
 *   Mon Nov 20 2017 Srivatsa S. Bhat <srivatsa@csail.mit.edu> 4.4.99-1
194 196
 -   Version update
195 197
 *   Tue Nov 07 2017 Alexey Makhalov <amakhalov@vmware.com> 4.4.96-1
... ...
@@ -1,7 +1,7 @@
1 1
 %global security_hardening none
2 2
 Summary:        Kernel
3 3
 Name:           linux
4
-Version:    	4.4.99
4
+Version:    	4.4.103
5 5
 Release:    	1%{?dist}
6 6
 License:    	GPLv2
7 7
 URL:        	http://www.kernel.org/
... ...
@@ -9,7 +9,7 @@ Group:        	System Environment/Kernel
9 9
 Vendor:         VMware, Inc.
10 10
 Distribution: 	Photon
11 11
 Source0:    	http://www.kernel.org/pub/linux/kernel/v4.x/%{name}-%{version}.tar.xz
12
-%define sha1 linux=b9e3193df23090404e5b7fc2b0d48d153b892e8b
12
+%define sha1 linux=e1de56b56f0a6662224d57a34b4dcd8f01b79926
13 13
 Source1:	config
14 14
 %define ena_version 1.1.3
15 15
 Source2:    	https://github.com/amzn/amzn-drivers/archive/ena_linux_1.1.3.tar.gz
... ...
@@ -36,8 +36,6 @@ Patch16:        net-9p-vsock.patch
36 36
 #allow some algorithms in FIPS mode
37 37
 Patch17:        0001-Revert-crypto-testmgr-Disable-fips-allowed-for-authe.patch
38 38
 Patch18:        0002-allow-also-ecb-cipher_null.patch
39
-# Fix CVE-2017-10911
40
-Patch19:        xen-blkback-dont-leak-stack-data-via-response-ring.patch
41 39
 # Fix CVE-2017-11472
42 40
 Patch20:        ACPICA-Namespace-fix-operand-cache-leak.patch
43 41
 
... ...
@@ -129,7 +127,6 @@ This package contains the 'perf' performance analysis tools for Linux kernel.
129 129
 %patch16 -p1
130 130
 %patch17 -p1
131 131
 %patch18 -p1
132
-%patch19 -p1
133 132
 %patch20 -p1
134 133
 
135 134
 %build
... ...
@@ -283,6 +280,8 @@ ln -sf %{name}-%{uname_r}.cfg /boot/photon.cfg
283 283
 /usr/share/perf-core
284 284
 
285 285
 %changelog
286
+*   Mon Dec 04 2017 Srivatsa S. Bhat <srivatsa@csail.mit.edu> 4.4.103-1
287
+-   Version update
286 288
 *   Mon Nov 20 2017 Srivatsa S. Bhat <srivatsa@csail.mit.edu> 4.4.99-1
287 289
 -   Version update
288 290
 *   Tue Nov 07 2017 Alexey Makhalov <amakhalov@vmware.com> 4.4.96-1
289 291
deleted file mode 100644
... ...
@@ -1,125 +0,0 @@
1
-From 089bc0143f489bd3a4578bdff5f4ca68fb26f341 Mon Sep 17 00:00:00 2001
2
-From: Jan Beulich <jbeulich@suse.com>
3
-Date: Tue, 13 Jun 2017 16:28:27 -0400
4
-Subject: [PATCH] xen-blkback: don't leak stack data via response ring
5
-
6
-Rather than constructing a local structure instance on the stack, fill
7
-the fields directly on the shared ring, just like other backends do.
8
-Build on the fact that all response structure flavors are actually
9
-identical (the old code did make this assumption too).
10
-
11
-This is XSA-216.
12
-
13
-Cc: stable@vger.kernel.org
14
-
15
-Signed-off-by: Jan Beulich <jbeulich@suse.com>
16
-Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
17
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
18
- drivers/block/xen-blkback/blkback.c | 23 ++++++++++++-----------
19
- drivers/block/xen-blkback/common.h  | 25 +++++--------------------
20
- 2 files changed, 17 insertions(+), 31 deletions(-)
21
-
22
-diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c
23
-index 6b14c509f3c7b..0e824091a12fa 100644
24
-+++ b/drivers/block/xen-blkback/blkback.c
25
-@@ -1433,33 +1433,34 @@ static int dispatch_rw_block_io(struct xen_blkif *blkif,
26
- static void make_response(struct xen_blkif *blkif, u64 id,
27
- 			  unsigned short op, int st)
28
- {
29
--	struct blkif_response  resp;
30
-+	struct blkif_response *resp;
31
- 	unsigned long     flags;
32
- 	union blkif_back_rings *blk_rings = &blkif->blk_rings;
33
- 	int notify;
34
- 
35
--	resp.id        = id;
36
--	resp.operation = op;
37
--	resp.status    = st;
38
--
39
- 	spin_lock_irqsave(&blkif->blk_ring_lock, flags);
40
- 	/* Place on the response ring for the relevant domain. */
41
- 	switch (blkif->blk_protocol) {
42
- 	case BLKIF_PROTOCOL_NATIVE:
43
--		memcpy(RING_GET_RESPONSE(&blk_rings->native, blk_rings->native.rsp_prod_pvt),
44
--		       &resp, sizeof(resp));
45
-+		resp = RING_GET_RESPONSE(&blk_rings->native,
46
-+					 blk_rings->native.rsp_prod_pvt);
47
- 		break;
48
- 	case BLKIF_PROTOCOL_X86_32:
49
--		memcpy(RING_GET_RESPONSE(&blk_rings->x86_32, blk_rings->x86_32.rsp_prod_pvt),
50
--		       &resp, sizeof(resp));
51
-+		resp = RING_GET_RESPONSE(&blk_rings->x86_32,
52
-+					 blk_rings->x86_32.rsp_prod_pvt);
53
- 		break;
54
- 	case BLKIF_PROTOCOL_X86_64:
55
--		memcpy(RING_GET_RESPONSE(&blk_rings->x86_64, blk_rings->x86_64.rsp_prod_pvt),
56
--		       &resp, sizeof(resp));
57
-+		resp = RING_GET_RESPONSE(&blk_rings->x86_64,
58
-+					 blk_rings->x86_64.rsp_prod_pvt);
59
- 		break;
60
- 	default:
61
- 		BUG();
62
- 	}
63
-+
64
-+	resp->id        = id;
65
-+	resp->operation = op;
66
-+	resp->status    = st;
67
-+
68
- 	blk_rings->common.rsp_prod_pvt++;
69
- 	RING_PUSH_RESPONSES_AND_CHECK_NOTIFY(&blk_rings->common, notify);
70
- 	spin_unlock_irqrestore(&blkif->blk_ring_lock, flags);
71
-diff --git a/drivers/block/xen-blkback/common.h b/drivers/block/xen-blkback/common.h
72
-index 638597b17a38c..ecb35fe8ca8db 100644
73
-+++ b/drivers/block/xen-blkback/common.h
74
-@@ -75,9 +75,8 @@ extern unsigned int xenblk_max_queues;
75
- struct blkif_common_request {
76
- 	char dummy;
77
- };
78
--struct blkif_common_response {
79
--	char dummy;
80
--};
81
-+
82
-+/* i386 protocol version */
83
- 
84
- struct blkif_x86_32_request_rw {
85
- 	uint8_t        nr_segments;  /* number of segments                   */
86
-@@ -129,14 +128,6 @@ struct blkif_x86_32_request {
87
- 	} u;
88
- } __attribute__((__packed__));
89
- 
90
--/* i386 protocol version */
91
--#pragma pack(push, 4)
92
--struct blkif_x86_32_response {
93
--	uint64_t        id;              /* copied from request */
94
--	uint8_t         operation;       /* copied from request */
95
--	int16_t         status;          /* BLKIF_RSP_???       */
96
--};
97
--#pragma pack(pop)
98
- /* x86_64 protocol version */
99
- 
100
- struct blkif_x86_64_request_rw {
101
-@@ -193,18 +184,12 @@ struct blkif_x86_64_request {
102
- 	} u;
103
- } __attribute__((__packed__));
104
- 
105
--struct blkif_x86_64_response {
106
--	uint64_t       __attribute__((__aligned__(8))) id;
107
--	uint8_t         operation;       /* copied from request */
108
--	int16_t         status;          /* BLKIF_RSP_???       */
109
--};
110
--
111
- DEFINE_RING_TYPES(blkif_common, struct blkif_common_request,
112
--		  struct blkif_common_response);
113
-+		  struct blkif_response);
114
- DEFINE_RING_TYPES(blkif_x86_32, struct blkif_x86_32_request,
115
--		  struct blkif_x86_32_response);
116
-+		  struct blkif_response __packed);
117
- DEFINE_RING_TYPES(blkif_x86_64, struct blkif_x86_64_request,
118
--		  struct blkif_x86_64_response);
119
-+		  struct blkif_response);
120
- 
121
- union blkif_back_rings {
122
- 	struct blkif_back_ring        native;