aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYi Zhao <yi.zhao@windriver.com>2018-07-11 11:23:44 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-07-13 16:32:38 +0100
commit22886cf6f37d9a5c6ff90e10e0c17ed7f6321305 (patch)
tree470fdba1e05e1bd9968c4d6f132c1b6df720414b
parent064455bc88f50d633f2ffe6a74c439d8a87c4fdc (diff)
downloadopenembedded-core-contrib-22886cf6f37d9a5c6ff90e10e0c17ed7f6321305.tar.gz
file: Security fix CVE-2018-10360
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>
-rw-r--r--meta/recipes-devtools/file/file/CVE-2018-10360.patch32
-rw-r--r--meta/recipes-devtools/file/file_5.33.bb1
2 files changed, 33 insertions, 0 deletions
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
index 0000000000..7f5671b834
--- /dev/null
+++ b/meta/recipes-devtools/file/file/CVE-2018-10360.patch
@@ -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
+
diff --git a/meta/recipes-devtools/file/file_5.33.bb b/meta/recipes-devtools/file/file_5.33.bb
index 4126422b38..745ef10951 100644
--- a/meta/recipes-devtools/file/file_5.33.bb
+++ b/meta/recipes-devtools/file/file_5.33.bb
@@ -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"