]> code.ossystems Code Review - openembedded-core.git/commitdiff
file: Security fix CVE-2018-10360
authorYi Zhao <yi.zhao@windriver.com>
Wed, 11 Jul 2018 03:23:44 +0000 (11:23 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 13 Jul 2018 15:32:38 +0000 (16:32 +0100)
CVE-2018-10360: The do_core_note function in readelf.c in libmagic.a in
file 5.33 allows remote attackers to cause a denial of service
(out-of-bounds read and application crash) via a crafted ELF file.

References:
https://nvd.nist.gov/vuln/detail/CVE-2018-10360

Patch from:
https://github.com/file/file/commit/a642587a9c9e2dd7feacdf513c3643ce26ad3c22

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
meta/recipes-devtools/file/file/CVE-2018-10360.patch [new file with mode: 0644]
meta/recipes-devtools/file/file_5.33.bb

diff --git a/meta/recipes-devtools/file/file/CVE-2018-10360.patch b/meta/recipes-devtools/file/file/CVE-2018-10360.patch
new file mode 100644 (file)
index 0000000..7f5671b
--- /dev/null
@@ -0,0 +1,32 @@
+From df494f4ca494b5e1044052d96a6092a16ef1f6b3 Mon Sep 17 00:00:00 2001
+From: Christos Zoulas <christos@zoulas.com>
+Date: Sat, 9 Jun 2018 16:00:06 +0000
+Subject: [PATCH] Avoid reading past the end of buffer (Rui Reis)
+
+Upstream-Status: Backport
+[https://github.com/file/file/commit/a642587a9c9e2dd7feacdf513c3643ce26ad3c22]
+
+CVE: CVE-2018-10360
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ src/readelf.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/readelf.c b/src/readelf.c
+index 3df0836..d96a538 100644
+--- a/src/readelf.c
++++ b/src/readelf.c
+@@ -825,7 +825,8 @@ do_core_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type,
+                               cname = (unsigned char *)
+                                   &nbuf[doff + prpsoffsets(i)];
+-                              for (cp = cname; *cp && isprint(*cp); cp++)
++                              for (cp = cname; cp < nbuf + size && *cp
++                                  && isprint(*cp); cp++)
+                                       continue;
+                               /*
+                                * Linux apparently appends a space at the end
+-- 
+2.7.4
+
index 4126422b38b4bcce0981c3600466e24c8dc059f1..745ef109514aca95f99bf62cb9984dab94771738 100644 (file)
@@ -16,6 +16,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "FILE(?P<pver>(?!6_23).+)"
 
 SRC_URI = "git://github.com/file/file.git \
         file://debian-742262.patch \
+        file://CVE-2018-10360.patch \
         "
 
 SRCREV = "219846094c7593e27453e62855e61181089c48cf"