summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/busybox
diff options
context:
space:
mode:
authorZhixiong Chi <zhixiong.chi@windriver.com>2017-12-04 00:17:25 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-12-10 22:45:20 +0000
commit07447113ad492dde7fe6cde916a0e9833b5d6164 (patch)
tree80771af7ec07aea62fcf7f0b515560a2b38e76ba /meta/recipes-core/busybox
parent09b8b36b30cc5a359fc316169a037a03512cd5af (diff)
downloadpoky-07447113ad492dde7fe6cde916a0e9833b5d6164.tar.gz
busybox: CVE-2017-16544
In the add_match function in libbb/lineedit.c in BusyBox through 1.27.2, the tab autocomplete feature of the shell, used to get a list of filenames in a directory, does not sanitize filenames and results in executing any escape sequence in the terminal. This could potentially result in code execution, arbitrary file writes, or other attacks. Backport the patch from: https://git.busybox.net/busybox/commit/?id=c3797d40a1c57352192c6106cc0f435e7d9c11e8 https://nvd.nist.gov/vuln/detail/CVE-2017-16544 (From OE-Core rev: aa41f0c37460a2863ce26d1321c19c9bedf680c4) Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core/busybox')
-rw-r--r--meta/recipes-core/busybox/busybox/busybox-CVE-2017-16544.patch43
-rw-r--r--meta/recipes-core/busybox/busybox_1.27.2.bb1
2 files changed, 44 insertions, 0 deletions
diff --git a/meta/recipes-core/busybox/busybox/busybox-CVE-2017-16544.patch b/meta/recipes-core/busybox/busybox/busybox-CVE-2017-16544.patch
new file mode 100644
index 0000000000..fc19ee3356
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox/busybox-CVE-2017-16544.patch
@@ -0,0 +1,43 @@
1From c3797d40a1c57352192c6106cc0f435e7d9c11e8 Mon Sep 17 00:00:00 2001
2From: Denys Vlasenko <vda.linux@googlemail.com>
3Date: Tue, 7 Nov 2017 18:09:29 +0100
4Subject: lineedit: do not tab-complete any strings which have control
5 characters
6
7function old new delta
8add_match 41 68 +27
9
10CVE: CVE-2017-16544
11Upstream-Status: Backport
12
13Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
14Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
15---
16 libbb/lineedit.c | 12 ++++++++++++
17 1 file changed, 12 insertions(+)
18
19diff --git a/libbb/lineedit.c b/libbb/lineedit.c
20index c0e35bb..56e8140 100644
21--- a/libbb/lineedit.c
22+++ b/libbb/lineedit.c
23@@ -645,6 +645,18 @@ static void free_tab_completion_data(void)
24
25 static void add_match(char *matched)
26 {
27+ unsigned char *p = (unsigned char*)matched;
28+ while (*p) {
29+ /* ESC attack fix: drop any string with control chars */
30+ if (*p < ' '
31+ || (!ENABLE_UNICODE_SUPPORT && *p >= 0x7f)
32+ || (ENABLE_UNICODE_SUPPORT && *p == 0x7f)
33+ ) {
34+ free(matched);
35+ return;
36+ }
37+ p++;
38+ }
39 matches = xrealloc_vector(matches, 4, num_matches);
40 matches[num_matches] = matched;
41 num_matches++;
42--
43cgit v0.12
diff --git a/meta/recipes-core/busybox/busybox_1.27.2.bb b/meta/recipes-core/busybox/busybox_1.27.2.bb
index 575127ec42..6c1f4888cf 100644
--- a/meta/recipes-core/busybox/busybox_1.27.2.bb
+++ b/meta/recipes-core/busybox/busybox_1.27.2.bb
@@ -43,6 +43,7 @@ SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
43 file://runlevel \ 43 file://runlevel \
44 file://makefile-libbb-race.patch \ 44 file://makefile-libbb-race.patch \
45 file://CVE-2011-5325.patch \ 45 file://CVE-2011-5325.patch \
46 file://busybox-CVE-2017-16544.patch \
46" 47"
47SRC_URI_append_libc-musl = " file://musl.cfg " 48SRC_URI_append_libc-musl = " file://musl.cfg "
48 49