diff options
| -rw-r--r-- | meta/recipes-core/busybox/busybox/busybox-CVE-2017-16544.patch | 43 | ||||
| -rw-r--r-- | meta/recipes-core/busybox/busybox_1.27.2.bb | 1 |
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 @@ | |||
| 1 | From c3797d40a1c57352192c6106cc0f435e7d9c11e8 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Denys Vlasenko <vda.linux@googlemail.com> | ||
| 3 | Date: Tue, 7 Nov 2017 18:09:29 +0100 | ||
| 4 | Subject: lineedit: do not tab-complete any strings which have control | ||
| 5 | characters | ||
| 6 | |||
| 7 | function old new delta | ||
| 8 | add_match 41 68 +27 | ||
| 9 | |||
| 10 | CVE: CVE-2017-16544 | ||
| 11 | Upstream-Status: Backport | ||
| 12 | |||
| 13 | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> | ||
| 14 | Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com> | ||
| 15 | --- | ||
| 16 | libbb/lineedit.c | 12 ++++++++++++ | ||
| 17 | 1 file changed, 12 insertions(+) | ||
| 18 | |||
| 19 | diff --git a/libbb/lineedit.c b/libbb/lineedit.c | ||
| 20 | index 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 | -- | ||
| 43 | cgit 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 | " |
| 47 | SRC_URI_append_libc-musl = " file://musl.cfg " | 48 | SRC_URI_append_libc-musl = " file://musl.cfg " |
| 48 | 49 | ||
