summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/qemu/qemu/CVE-2018-20815_p2.patch
diff options
context:
space:
mode:
authorArmin Kuster <akuster@mvista.com>2019-07-01 17:30:37 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-07-27 18:05:18 +0100
commite2f3997a84d0d700b0570a0f5d6f17ceffd955c4 (patch)
treebe18f12e4296eeb0eae4e70799281c8653be3693 /meta/recipes-devtools/qemu/qemu/CVE-2018-20815_p2.patch
parent45e662b445970d6f57b8787c0c61b903cdfaa238 (diff)
downloadpoky-e2f3997a84d0d700b0570a0f5d6f17ceffd955c4.tar.gz
qemu: Security fixes CVE-2018-20815 CVE-2019-9824
Source: qemu.org MR: 98623 Type: Security Fix Disposition: Backport from qemu.org ChangeID: 03b3f28e5860ef1cb9f58dce89f252bd7ed59f37 Description: Fixes both CVE-2018-20815 and CVE-2019-9824 (From OE-Core rev: 5c45cd09fb29d4a1ebda6153a25f16e312049c44) Signed-off-by: Armin Kuster <akuster@mvista.com> Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/qemu/qemu/CVE-2018-20815_p2.patch')
-rw-r--r--meta/recipes-devtools/qemu/qemu/CVE-2018-20815_p2.patch52
1 files changed, 52 insertions, 0 deletions
diff --git a/meta/recipes-devtools/qemu/qemu/CVE-2018-20815_p2.patch b/meta/recipes-devtools/qemu/qemu/CVE-2018-20815_p2.patch
new file mode 100644
index 0000000000..d01e874473
--- /dev/null
+++ b/meta/recipes-devtools/qemu/qemu/CVE-2018-20815_p2.patch
@@ -0,0 +1,52 @@
1From 065e6298a75164b4347682b63381dbe752c2b156 Mon Sep 17 00:00:00 2001
2From: Markus Armbruster <armbru@redhat.com>
3Date: Tue, 9 Apr 2019 19:40:18 +0200
4Subject: [PATCH] device_tree: Fix integer overflowing in load_device_tree()
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9If the value of get_image_size() exceeds INT_MAX / 2 - 10000, the
10computation of @dt_size overflows to a negative number, which then
11gets converted to a very large size_t for g_malloc0() and
12load_image_size(). In the (fortunately improbable) case g_malloc0()
13succeeds and load_image_size() survives, we'd assign the negative
14number to *sizep. What that would do to the callers I can't say, but
15it's unlikely to be good.
16
17Fix by rejecting images whose size would overflow.
18
19Reported-by: Kurtis Miller <kurtis.miller@nccgroup.com>
20Signed-off-by: Markus Armbruster <armbru@redhat.com>
21Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
22Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
23Message-Id: <20190409174018.25798-1-armbru@redhat.com>
24
25Upstream-Status: Backport
26CVE: CVE-2018-20815
27affects <= 3.0.1
28
29Signed-off-by: Armin Kuster <akuster@mvista.com>
30
31---
32 device_tree.c | 4 ++++
33 1 file changed, 4 insertions(+)
34
35diff --git a/device_tree.c b/device_tree.c
36index 296278e..f8b46b3 100644
37--- a/device_tree.c
38+++ b/device_tree.c
39@@ -84,6 +84,10 @@ void *load_device_tree(const char *filename_path, int *sizep)
40 filename_path);
41 goto fail;
42 }
43+ if (dt_size > INT_MAX / 2 - 10000) {
44+ error_report("Device tree file '%s' is too large", filename_path);
45+ goto fail;
46+ }
47
48 /* Expand to 2x size to give enough room for manipulation. */
49 dt_size += 10000;
50--
512.7.4
52