[linux] 22/29: bugfix/all/kvm-fix-stack-out-of-bounds-read-in-write_mmio.patch dropped, included upstream.

debian-kernel at lists.debian.org debian-kernel at lists.debian.org
Tue Jan 23 17:14:07 UTC 2018


This is an automated email from the git hooks/post-receive script.

corsac pushed a commit to branch stretch
in repository linux.

commit 5d0092a9bf89634a70762a1e9f6df9b867522456
Author: Yves-Alexis Perez <corsac at debian.org>
Date:   Thu Jan 18 11:51:01 2018 +0100

    bugfix/all/kvm-fix-stack-out-of-bounds-read-in-write_mmio.patch dropped, included upstream.
---
 debian/changelog                                   |   4 +-
 ...ix-stack-out-of-bounds-read-in-write_mmio.patch | 154 ---------------------
 debian/patches/series                              |   1 -
 3 files changed, 3 insertions(+), 156 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 3841b00..12112b8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -793,7 +793,9 @@ linux (4.9.77-1) UNRELEASED; urgency=medium
     prevent FTBFS.
   * debian/patches:
     - bugfix/all/e1000e-fix-e1000_check_for_copper_link_ich8lan-return-value.patch
-    dropped, included upstream.
+      dropped, included upstream.
+    - bugfix/all/kvm-fix-stack-out-of-bounds-read-in-write_mmio.patch dropped,
+      included upstream.
 
  -- Ben Hutchings <ben at decadent.org.uk>  Thu, 28 Dec 2017 02:16:23 +0000
 
diff --git a/debian/patches/bugfix/all/kvm-fix-stack-out-of-bounds-read-in-write_mmio.patch b/debian/patches/bugfix/all/kvm-fix-stack-out-of-bounds-read-in-write_mmio.patch
deleted file mode 100644
index 45253f9..0000000
--- a/debian/patches/bugfix/all/kvm-fix-stack-out-of-bounds-read-in-write_mmio.patch
+++ /dev/null
@@ -1,154 +0,0 @@
-From: Wanpeng Li <wanpeng.li at hotmail.com>
-Date: Thu, 14 Dec 2017 17:40:50 -0800
-Subject: KVM: Fix stack-out-of-bounds read in write_mmio
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-Origin: https://git.kernel.org/pub/scm/virt/kvm/kvm.git/commit?id=e39d200fa5bf5b94a0948db0dae44c1b73b84a56
-Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2017-17741
-
-Reported by syzkaller:
-
-  BUG: KASAN: stack-out-of-bounds in write_mmio+0x11e/0x270 [kvm]
-  Read of size 8 at addr ffff8803259df7f8 by task syz-executor/32298
-
-  CPU: 6 PID: 32298 Comm: syz-executor Tainted: G           OE    4.15.0-rc2+ #18
-  Hardware name: LENOVO ThinkCentre M8500t-N000/SHARKBAY, BIOS FBKTC1AUS 02/16/2016
-  Call Trace:
-   dump_stack+0xab/0xe1
-   print_address_description+0x6b/0x290
-   kasan_report+0x28a/0x370
-   write_mmio+0x11e/0x270 [kvm]
-   emulator_read_write_onepage+0x311/0x600 [kvm]
-   emulator_read_write+0xef/0x240 [kvm]
-   emulator_fix_hypercall+0x105/0x150 [kvm]
-   em_hypercall+0x2b/0x80 [kvm]
-   x86_emulate_insn+0x2b1/0x1640 [kvm]
-   x86_emulate_instruction+0x39a/0xb90 [kvm]
-   handle_exception+0x1b4/0x4d0 [kvm_intel]
-   vcpu_enter_guest+0x15a0/0x2640 [kvm]
-   kvm_arch_vcpu_ioctl_run+0x549/0x7d0 [kvm]
-   kvm_vcpu_ioctl+0x479/0x880 [kvm]
-   do_vfs_ioctl+0x142/0x9a0
-   SyS_ioctl+0x74/0x80
-   entry_SYSCALL_64_fastpath+0x23/0x9a
-
-The path of patched vmmcall will patch 3 bytes opcode 0F 01 C1(vmcall)
-to the guest memory, however, write_mmio tracepoint always prints 8 bytes
-through *(u64 *)val since kvm splits the mmio access into 8 bytes. This
-leaks 5 bytes from the kernel stack (CVE-2017-17741).  This patch fixes
-it by just accessing the bytes which we operate on.
-
-Before patch:
-
-syz-executor-5567  [007] .... 51370.561696: kvm_mmio: mmio write len 3 gpa 0x10 val 0x1ffff10077c1010f
-
-After patch:
-
-syz-executor-13416 [002] .... 51302.299573: kvm_mmio: mmio write len 3 gpa 0x10 val 0xc1010f
-
-Reported-by: Dmitry Vyukov <dvyukov at google.com>
-Reviewed-by: Darren Kenny <darren.kenny at oracle.com>
-Reviewed-by: Marc Zyngier <marc.zyngier at arm.com>
-Tested-by: Marc Zyngier <marc.zyngier at arm.com>
-Cc: Paolo Bonzini <pbonzini at redhat.com>
-Cc: Radim Krčmář <rkrcmar at redhat.com>
-Cc: Marc Zyngier <marc.zyngier at arm.com>
-Cc: Christoffer Dall <christoffer.dall at linaro.org>
-Signed-off-by: Wanpeng Li <wanpeng.li at hotmail.com>
-Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
-[bwh: Backported to 4.9: adjust filename]]
----
- arch/arm/kvm/mmio.c        | 6 +++---
- arch/x86/kvm/x86.c         | 8 ++++----
- include/trace/events/kvm.h | 7 +++++--
- 3 files changed, 12 insertions(+), 9 deletions(-)
-
---- a/arch/arm/kvm/mmio.c
-+++ b/arch/arm/kvm/mmio.c
-@@ -112,7 +112,7 @@ int kvm_handle_mmio_return(struct kvm_vc
- 		}
- 
- 		trace_kvm_mmio(KVM_TRACE_MMIO_READ, len, run->mmio.phys_addr,
--			       data);
-+			       &data);
- 		data = vcpu_data_host_to_guest(vcpu, data, len);
- 		vcpu_set_reg(vcpu, vcpu->arch.mmio_decode.rt, data);
- 	}
-@@ -182,14 +182,14 @@ int io_mem_abort(struct kvm_vcpu *vcpu,
- 		data = vcpu_data_guest_to_host(vcpu, vcpu_get_reg(vcpu, rt),
- 					       len);
- 
--		trace_kvm_mmio(KVM_TRACE_MMIO_WRITE, len, fault_ipa, data);
-+		trace_kvm_mmio(KVM_TRACE_MMIO_WRITE, len, fault_ipa, &data);
- 		kvm_mmio_write_buf(data_buf, len, data);
- 
- 		ret = kvm_io_bus_write(vcpu, KVM_MMIO_BUS, fault_ipa, len,
- 				       data_buf);
- 	} else {
- 		trace_kvm_mmio(KVM_TRACE_MMIO_READ_UNSATISFIED, len,
--			       fault_ipa, 0);
-+			       fault_ipa, NULL);
- 
- 		ret = kvm_io_bus_read(vcpu, KVM_MMIO_BUS, fault_ipa, len,
- 				      data_buf);
---- a/arch/x86/kvm/x86.c
-+++ b/arch/x86/kvm/x86.c
-@@ -4260,7 +4260,7 @@ static int vcpu_mmio_read(struct kvm_vcp
- 					 addr, n, v))
- 		    && kvm_io_bus_read(vcpu, KVM_MMIO_BUS, addr, n, v))
- 			break;
--		trace_kvm_mmio(KVM_TRACE_MMIO_READ, n, addr, *(u64 *)v);
-+		trace_kvm_mmio(KVM_TRACE_MMIO_READ, n, addr, v);
- 		handled += n;
- 		addr += n;
- 		len -= n;
-@@ -4513,7 +4513,7 @@ static int read_prepare(struct kvm_vcpu
- {
- 	if (vcpu->mmio_read_completed) {
- 		trace_kvm_mmio(KVM_TRACE_MMIO_READ, bytes,
--			       vcpu->mmio_fragments[0].gpa, *(u64 *)val);
-+			       vcpu->mmio_fragments[0].gpa, val);
- 		vcpu->mmio_read_completed = 0;
- 		return 1;
- 	}
-@@ -4535,14 +4535,14 @@ static int write_emulate(struct kvm_vcpu
- 
- static int write_mmio(struct kvm_vcpu *vcpu, gpa_t gpa, int bytes, void *val)
- {
--	trace_kvm_mmio(KVM_TRACE_MMIO_WRITE, bytes, gpa, *(u64 *)val);
-+	trace_kvm_mmio(KVM_TRACE_MMIO_WRITE, bytes, gpa, val);
- 	return vcpu_mmio_write(vcpu, gpa, bytes, val);
- }
- 
- static int read_exit_mmio(struct kvm_vcpu *vcpu, gpa_t gpa,
- 			  void *val, int bytes)
- {
--	trace_kvm_mmio(KVM_TRACE_MMIO_READ_UNSATISFIED, bytes, gpa, 0);
-+	trace_kvm_mmio(KVM_TRACE_MMIO_READ_UNSATISFIED, bytes, gpa, NULL);
- 	return X86EMUL_IO_NEEDED;
- }
- 
---- a/include/trace/events/kvm.h
-+++ b/include/trace/events/kvm.h
-@@ -208,7 +208,7 @@ TRACE_EVENT(kvm_ack_irq,
- 	{ KVM_TRACE_MMIO_WRITE, "write" }
- 
- TRACE_EVENT(kvm_mmio,
--	TP_PROTO(int type, int len, u64 gpa, u64 val),
-+	TP_PROTO(int type, int len, u64 gpa, void *val),
- 	TP_ARGS(type, len, gpa, val),
- 
- 	TP_STRUCT__entry(
-@@ -222,7 +222,10 @@ TRACE_EVENT(kvm_mmio,
- 		__entry->type		= type;
- 		__entry->len		= len;
- 		__entry->gpa		= gpa;
--		__entry->val		= val;
-+		__entry->val		= 0;
-+		if (val)
-+			memcpy(&__entry->val, val,
-+			       min_t(u32, sizeof(__entry->val), len));
- 	),
- 
- 	TP_printk("mmio %s len %u gpa 0x%llx val 0x%llx",
diff --git a/debian/patches/series b/debian/patches/series
index 09f0e8a..a727850 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -141,7 +141,6 @@ bugfix/all/media-dvb-usb-v2-lmedm04-move-ts2020-attach-to-dm04_.patch
 bugfix/all/media-hdpvr-fix-an-error-handling-path-in-hdpvr_prob.patch
 bugfix/all/netfilter-nfnetlink_cthelper-add-missing-permission-.patch
 bugfix/all/netfilter-xt_osf-add-missing-permission-checks.patch
-bugfix/all/kvm-fix-stack-out-of-bounds-read-in-write_mmio.patch
 bugfix/all/bluetooth-prevent-stack-info-leak-from-the-efs-element.patch
 
 # Fix exported symbol versions

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/kernel/linux.git



More information about the Kernel-svn-changes mailing list