diff options
author | Andrew Geissler <geissonator@yahoo.com> | 2020-04-13 21:39:40 +0300 |
---|---|---|
committer | Andrew Geissler <geissonator@yahoo.com> | 2020-05-05 16:30:44 +0300 |
commit | 82c905dc58a36aeae40b1b273a12f63fb1973cf4 (patch) | |
tree | 38caf00263451b5036435cdc36e035b25d32e623 /poky/meta/recipes-extended/sudo | |
parent | 83ecb75644b3d677c274188f9ac0b2374d6f6925 (diff) | |
download | openbmc-82c905dc58a36aeae40b1b273a12f63fb1973cf4.tar.xz |
meta-openembedded and poky: subtree updates
Squash of the following due to dependencies among them
and OpenBMC changes:
meta-openembedded: subtree update:d0748372d2..9201611135
meta-openembedded: subtree update:9201611135..17fd382f34
poky: subtree update:9052e5b32a..2e11d97b6c
poky: subtree update:2e11d97b6c..a8544811d7
The change log was too large for the jenkins plugin
to handle therefore it has been removed. Here is
the first and last commit of each subtree:
meta-openembedded:d0748372d2
cppzmq: bump to version 4.6.0
meta-openembedded:17fd382f34
mpv: Remove X11 dependency
poky:9052e5b32a
package_ipk: Remove pointless comment to trigger rebuild
poky:a8544811d7
pbzip2: Fix license warning
Change-Id: If0fc6c37629642ee207a4ca2f7aa501a2c673cd6
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Diffstat (limited to 'poky/meta/recipes-extended/sudo')
-rw-r--r-- | poky/meta/recipes-extended/sudo/sudo.inc | 26 | ||||
-rw-r--r-- | poky/meta/recipes-extended/sudo/sudo/CVE-2019-14287-1.patch | 178 | ||||
-rw-r--r-- | poky/meta/recipes-extended/sudo/sudo/CVE-2019-14287-2.patch | 112 | ||||
-rw-r--r-- | poky/meta/recipes-extended/sudo/sudo_1.8.31.bb (renamed from poky/meta/recipes-extended/sudo/sudo_1.8.27.bb) | 16 |
4 files changed, 24 insertions, 308 deletions
diff --git a/poky/meta/recipes-extended/sudo/sudo.inc b/poky/meta/recipes-extended/sudo/sudo.inc index 15075bcef..5d27d4692 100644 --- a/poky/meta/recipes-extended/sudo/sudo.inc +++ b/poky/meta/recipes-extended/sudo/sudo.inc @@ -4,18 +4,18 @@ HOMEPAGE = "http://www.sudo.ws" BUGTRACKER = "http://www.sudo.ws/bugs/" SECTION = "admin" LICENSE = "ISC & BSD & Zlib" -LIC_FILES_CHKSUM = "file://doc/LICENSE;md5=6c76b73603ac7763ab0516ebfbe67b42 \ - file://plugins/sudoers/redblack.c;beginline=1;endline=46;md5=4a162fc04b86b03f5632180fe6076cda \ - file://lib/util/reallocarray.c;beginline=3;endline=15;md5=b47f1f85a12f05a0744cd8b1b6f41a0d \ - file://lib/util/fnmatch.c;beginline=3;endline=27;md5=67f83ee9bd456557397082f8f1be0efd \ - file://lib/util/getcwd.c;beginline=2;endline=27;md5=09068a19b4f6b6f0a0958655bfe98b63 \ - file://lib/util/glob.c;beginline=2;endline=31;md5=1f2f771c35fb0658d567a7824007e56d \ - file://lib/util/snprintf.c;beginline=3;endline=33;md5=63e48e1b992bce749a19dd9b2256e9a0 \ - file://include/sudo_queue.h;beginline=2;endline=27;md5=082b138b72ba3e568a13a25c3bf254dc \ - file://lib/util/inet_pton.c;beginline=3;endline=17;md5=3970ab0518ab79cbd0bafb697f10b33a \ - file://lib/util/arc4random.c;beginline=3;endline=20;md5=15bdc89c1b003fa4d7353e6296ebfd68 \ - file://lib/util/arc4random_uniform.c;beginline=3;endline=17;md5=31e630ac814d692fd0ab7a942659b46f \ - file://lib/util/getentropy.c;beginline=1;endline=19;md5=9f1a275ecd44cc264a2a4d5e06a75292 \ +LIC_FILES_CHKSUM = "file://doc/LICENSE;md5=4d1b44b1576eea036d78b8cc961aa93d \ + file://plugins/sudoers/redblack.c;beginline=1;endline=46;md5=03e35317699ba00b496251e0dfe9f109 \ + file://lib/util/reallocarray.c;beginline=3;endline=15;md5=397dd45c7683e90b9f8bf24638cf03bf \ + file://lib/util/fnmatch.c;beginline=3;endline=27;md5=004d7d2866ba1f5b41174906849d2e0f \ + file://lib/util/getcwd.c;beginline=2;endline=27;md5=50f8d9667750e18dea4e84a935c12009 \ + file://lib/util/glob.c;beginline=2;endline=31;md5=2852f68687544e3eb8a0a61665506f0e \ + file://lib/util/snprintf.c;beginline=3;endline=33;md5=b70df6179969e38fcf68da91b53b8029 \ + file://include/sudo_queue.h;beginline=2;endline=27;md5=ad578e9664d17a010b63e4bc0576ee8d \ + file://lib/util/inet_pton.c;beginline=3;endline=17;md5=27785c9f5835093eda42aa0816a2d0b4 \ + file://lib/util/arc4random.c;beginline=3;endline=20;md5=ced8636ecefa2ba907cfe390bc3bd964 \ + file://lib/util/arc4random_uniform.c;beginline=3;endline=17;md5=e30c2b777cdc00cfcaf7c445a10b262f \ + file://lib/util/getentropy.c;beginline=1;endline=19;md5=a0f58be3d60b6dcd898ec5fe0866d36f \ " inherit autotools @@ -26,7 +26,7 @@ PACKAGECONFIG[pam-wheel] = ",,,pam-plugin-wheel" CONFFILES_${PN} = "${sysconfdir}/sudoers" -EXTRA_OECONF = "--with-editor=/bin/vi --with-env-editor" +EXTRA_OECONF = "--with-editor=${base_bindir}/vi --with-env-editor" EXTRA_OECONF_append_libc-musl = " --disable-hardening " diff --git a/poky/meta/recipes-extended/sudo/sudo/CVE-2019-14287-1.patch b/poky/meta/recipes-extended/sudo/sudo/CVE-2019-14287-1.patch deleted file mode 100644 index 2a11e3f7e..000000000 --- a/poky/meta/recipes-extended/sudo/sudo/CVE-2019-14287-1.patch +++ /dev/null @@ -1,178 +0,0 @@ -From f752ae5cee163253730ff7cdf293e34a91aa5520 Mon Sep 17 00:00:00 2001 -From: "Todd C. Miller" <Todd.Miller@sudo.ws> -Date: Thu, 10 Oct 2019 10:04:13 -0600 -Subject: [PATCH] Treat an ID of -1 as invalid since that means "no change". - Fixes CVE-2019-14287. Found by Joe Vennix from Apple Information Security. - -Upstream-Status: Backport [https://github.com/sudo-project/sudo/commit/f752ae5cee163253730ff7cdf293e34a91aa5520] -CVE: CVE-2019-14287 - -Signed-off-by: Changqing Li <changqing.li@windriver.com> - ---- - lib/util/strtoid.c | 100 ++++++++++++++++++++++++++++------------------------- - 1 files changed, 53 insertions(+), 46 deletions(-) - -diff --git a/lib/util/strtoid.c b/lib/util/strtoid.c -index 2dfce75..6b3916b 100644 ---- a/lib/util/strtoid.c -+++ b/lib/util/strtoid.c -@@ -49,6 +49,27 @@ - #include "sudo_util.h" - - /* -+ * Make sure that the ID ends with a valid separator char. -+ */ -+static bool -+valid_separator(const char *p, const char *ep, const char *sep) -+{ -+ bool valid = false; -+ debug_decl(valid_separator, SUDO_DEBUG_UTIL) -+ -+ if (ep != p) { -+ /* check for valid separator (including '\0') */ -+ if (sep == NULL) -+ sep = ""; -+ do { -+ if (*ep == *sep) -+ valid = true; -+ } while (*sep++ != '\0'); -+ } -+ debug_return_bool(valid); -+} -+ -+/* - * Parse a uid/gid in string form. - * If sep is non-NULL, it contains valid separator characters (e.g. comma, space) - * If endp is non-NULL it is set to the next char after the ID. -@@ -62,36 +83,33 @@ sudo_strtoid_v1(const char *p, const char *sep, char **endp, const char **errstr - char *ep; - id_t ret = 0; - long long llval; -- bool valid = false; - debug_decl(sudo_strtoid, SUDO_DEBUG_UTIL) - - /* skip leading space so we can pick up the sign, if any */ - while (isspace((unsigned char)*p)) - p++; -- if (sep == NULL) -- sep = ""; -+ -+ /* While id_t may be 64-bit signed, uid_t and gid_t are 32-bit unsigned. */ - errno = 0; - llval = strtoll(p, &ep, 10); -- if (ep != p) { -- /* check for valid separator (including '\0') */ -- do { -- if (*ep == *sep) -- valid = true; -- } while (*sep++ != '\0'); -+ if ((errno == ERANGE && llval == LLONG_MAX) || llval > (id_t)UINT_MAX) { -+ errno = ERANGE; -+ if (errstr != NULL) -+ *errstr = N_("value too large"); -+ goto done; - } -- if (!valid) { -+ if ((errno == ERANGE && llval == LLONG_MIN) || llval < INT_MIN) { -+ errno = ERANGE; - if (errstr != NULL) -- *errstr = N_("invalid value"); -- errno = EINVAL; -+ *errstr = N_("value too small"); - goto done; - } -- if (errno == ERANGE) { -- if (errstr != NULL) { -- if (llval == LLONG_MAX) -- *errstr = N_("value too large"); -- else -- *errstr = N_("value too small"); -- } -+ -+ /* Disallow id -1, which means "no change". */ -+ if (!valid_separator(p, ep, sep) || llval == -1 || llval == (id_t)UINT_MAX) { -+ if (errstr != NULL) -+ *errstr = N_("invalid value"); -+ errno = EINVAL; - goto done; - } - ret = (id_t)llval; -@@ -108,30 +126,15 @@ sudo_strtoid_v1(const char *p, const char *sep, char **endp, const char **errstr - { - char *ep; - id_t ret = 0; -- bool valid = false; - debug_decl(sudo_strtoid, SUDO_DEBUG_UTIL) - - /* skip leading space so we can pick up the sign, if any */ - while (isspace((unsigned char)*p)) - p++; -- if (sep == NULL) -- sep = ""; -+ - errno = 0; - if (*p == '-') { - long lval = strtol(p, &ep, 10); -- if (ep != p) { -- /* check for valid separator (including '\0') */ -- do { -- if (*ep == *sep) -- valid = true; -- } while (*sep++ != '\0'); -- } -- if (!valid) { -- if (errstr != NULL) -- *errstr = N_("invalid value"); -- errno = EINVAL; -- goto done; -- } - if ((errno == ERANGE && lval == LONG_MAX) || lval > INT_MAX) { - errno = ERANGE; - if (errstr != NULL) -@@ -144,28 +147,31 @@ sudo_strtoid_v1(const char *p, const char *sep, char **endp, const char **errstr - *errstr = N_("value too small"); - goto done; - } -- ret = (id_t)lval; -- } else { -- unsigned long ulval = strtoul(p, &ep, 10); -- if (ep != p) { -- /* check for valid separator (including '\0') */ -- do { -- if (*ep == *sep) -- valid = true; -- } while (*sep++ != '\0'); -- } -- if (!valid) { -+ -+ /* Disallow id -1, which means "no change". */ -+ if (!valid_separator(p, ep, sep) || lval == -1) { - if (errstr != NULL) - *errstr = N_("invalid value"); - errno = EINVAL; - goto done; - } -+ ret = (id_t)lval; -+ } else { -+ unsigned long ulval = strtoul(p, &ep, 10); - if ((errno == ERANGE && ulval == ULONG_MAX) || ulval > UINT_MAX) { - errno = ERANGE; - if (errstr != NULL) - *errstr = N_("value too large"); - goto done; - } -+ -+ /* Disallow id -1, which means "no change". */ -+ if (!valid_separator(p, ep, sep) || ulval == UINT_MAX) { -+ if (errstr != NULL) -+ *errstr = N_("invalid value"); -+ errno = EINVAL; -+ goto done; -+ } - ret = (id_t)ulval; - } - if (errstr != NULL) --- -2.7.4 - diff --git a/poky/meta/recipes-extended/sudo/sudo/CVE-2019-14287-2.patch b/poky/meta/recipes-extended/sudo/sudo/CVE-2019-14287-2.patch deleted file mode 100644 index 453a8b09a..000000000 --- a/poky/meta/recipes-extended/sudo/sudo/CVE-2019-14287-2.patch +++ /dev/null @@ -1,112 +0,0 @@ -From 396bc57feff3e360007634f62448b64e0626390c Mon Sep 17 00:00:00 2001 -From: "Todd C. Miller" <Todd.Miller@sudo.ws> -Date: Thu, 10 Oct 2019 10:04:13 -0600 -Subject: [PATCH] Add sudo_strtoid() tests for -1 and range errors. Also adjust - testsudoers/test5 which relied upon gid -1 parsing. - -Upstream-Status: Backport [https://github.com/sudo-project/sudo/commit/396bc57] -CVE: CVE-2019-14287 - -Signed-off-by: Changqing Li <changqing.li@windriver.com> - ---- - lib/util/regress/atofoo/atofoo_test.c | 36 ++++++++++++++++------ - plugins/sudoers/regress/testsudoers/test5.out.ok | 2 +- - plugins/sudoers/regress/testsudoers/test5.sh | 2 +- - 3 files changed, 29 insertions(+), 11 deletions(-) - -diff --git a/lib/util/regress/atofoo/atofoo_test.c b/lib/util/regress/atofoo/atofoo_test.c -index 031a7ed..fb41c1a 100644 ---- a/lib/util/regress/atofoo/atofoo_test.c -+++ b/lib/util/regress/atofoo/atofoo_test.c -@@ -26,6 +26,7 @@ - #else - # include "compat/stdbool.h" - #endif -+#include <errno.h> - - #include "sudo_compat.h" - #include "sudo_util.h" -@@ -80,15 +81,20 @@ static struct strtoid_data { - id_t id; - const char *sep; - const char *ep; -+ int errnum; - } strtoid_data[] = { -- { "0,1", 0, ",", "," }, -- { "10", 10, NULL, NULL }, -- { "-2", -2, NULL, NULL }, -+ { "0,1", 0, ",", ",", 0 }, -+ { "10", 10, NULL, NULL, 0 }, -+ { "-1", 0, NULL, NULL, EINVAL }, -+ { "4294967295", 0, NULL, NULL, EINVAL }, -+ { "4294967296", 0, NULL, NULL, ERANGE }, -+ { "-2147483649", 0, NULL, NULL, ERANGE }, -+ { "-2", -2, NULL, NULL, 0 }, - #if SIZEOF_ID_T != SIZEOF_LONG_LONG -- { "-2", (id_t)4294967294U, NULL, NULL }, -+ { "-2", (id_t)4294967294U, NULL, NULL, 0 }, - #endif -- { "4294967294", (id_t)4294967294U, NULL, NULL }, -- { NULL, 0, NULL, NULL } -+ { "4294967294", (id_t)4294967294U, NULL, NULL, 0 }, -+ { NULL, 0, NULL, NULL, 0 } - }; - - static int -@@ -104,11 +110,23 @@ test_strtoid(int *ntests) - (*ntests)++; - errstr = "some error"; - value = sudo_strtoid(d->idstr, d->sep, &ep, &errstr); -- if (errstr != NULL) { -- if (d->id != (id_t)-1) { -- sudo_warnx_nodebug("FAIL: %s: %s", d->idstr, errstr); -+ if (d->errnum != 0) { -+ if (errstr == NULL) { -+ sudo_warnx_nodebug("FAIL: %s: missing errstr for errno %d", -+ d->idstr, d->errnum); -+ errors++; -+ } else if (value != 0) { -+ sudo_warnx_nodebug("FAIL: %s should return 0 on error", -+ d->idstr); -+ errors++; -+ } else if (errno != d->errnum) { -+ sudo_warnx_nodebug("FAIL: %s: errno mismatch, %d != %d", -+ d->idstr, errno, d->errnum); - errors++; - } -+ } else if (errstr != NULL) { -+ sudo_warnx_nodebug("FAIL: %s: %s", d->idstr, errstr); -+ errors++; - } else if (value != d->id) { - sudo_warnx_nodebug("FAIL: %s != %u", d->idstr, (unsigned int)d->id); - errors++; -diff --git a/plugins/sudoers/regress/testsudoers/test5.out.ok b/plugins/sudoers/regress/testsudoers/test5.out.ok -index 5e319c9..cecf700 100644 ---- a/plugins/sudoers/regress/testsudoers/test5.out.ok -+++ b/plugins/sudoers/regress/testsudoers/test5.out.ok -@@ -4,7 +4,7 @@ Parse error in sudoers near line 1. - Entries for user root: - - Command unmatched --testsudoers: test5.inc should be owned by gid 4294967295 -+testsudoers: test5.inc should be owned by gid 4294967294 - Parse error in sudoers near line 1. - - Entries for user root: -diff --git a/plugins/sudoers/regress/testsudoers/test5.sh b/plugins/sudoers/regress/testsudoers/test5.sh -index 9e690a6..94d585c 100755 ---- a/plugins/sudoers/regress/testsudoers/test5.sh -+++ b/plugins/sudoers/regress/testsudoers/test5.sh -@@ -24,7 +24,7 @@ EOF - - # Test group writable - chmod 664 $TESTFILE --./testsudoers -U $MYUID -G -1 root id <<EOF -+./testsudoers -U $MYUID -G -2 root id <<EOF - #include $TESTFILE - EOF - --- -2.7.4 - diff --git a/poky/meta/recipes-extended/sudo/sudo_1.8.27.bb b/poky/meta/recipes-extended/sudo/sudo_1.8.31.bb index 0a11a1b28..39d8817c3 100644 --- a/poky/meta/recipes-extended/sudo/sudo_1.8.27.bb +++ b/poky/meta/recipes-extended/sudo/sudo_1.8.31.bb @@ -3,22 +3,28 @@ require sudo.inc SRC_URI = "https://www.sudo.ws/dist/sudo-${PV}.tar.gz \ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \ file://0001-Include-sys-types.h-for-id_t-definition.patch \ - file://CVE-2019-14287-1.patch \ - file://CVE-2019-14287-2.patch \ " PAM_SRC_URI = "file://sudo.pam" -SRC_URI[md5sum] = "b5c184b13b6b5de32af630af2fd013fd" -SRC_URI[sha256sum] = "7beb68b94471ef56d8a1036dbcdc09a7b58a949a68ffce48b83f837dd33e2ec0" +SRC_URI[md5sum] = "ce17ff6e72a70f8d5dabba8abf3cd2de" +SRC_URI[sha256sum] = "7ea8d97a3cee4c844e0887ea7a1bd80eb54cc98fd77966776cb1a80653ad454f" DEPENDS += " virtual/crypt ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" RDEPENDS_${PN} += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-limits pam-plugin-keyinit', '', d)}" +CACHED_CONFIGUREVARS = " \ + ac_cv_type_rsize_t=no \ + ac_cv_path_MVPROG=${base_bindir}/mv \ + ac_cv_path_BSHELLPROG=${base_bindir}/sh \ + ac_cv_path_SENDMAILPROG=${sbindir}/sendmail \ + ac_cv_path_VIPROG=${base_bindir}/vi \ + " + EXTRA_OECONF += " \ - ac_cv_type_rsize_t=no \ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-tmpfiles.d=${nonarch_libdir}/tmpfiles.d', '--disable-tmpfiles.d', d)} \ + --with-vardir=/var/lib/sudo \ " do_install_append () { |