From 8fcd5a31b9563de0f208826cfb3aaf1da886b286 Mon Sep 17 00:00:00 2001 From: Jagadeesh Krishnanjanappa Date: Wed, 22 Aug 2018 17:11:45 +0530 Subject: gnupg: CVE-2018-12020 gpg: Sanitize diagnostic with the original file name. * g10/mainproc.c (proc_plaintext): Sanitize verbose output. (From OE-Core rev: f1c0da2bcb0587ac25176db11365d4a2a15b3d30) Signed-off-by: Armin Kuster Signed-off-by: Richard Purdie --- .../gnupg/gnupg/CVE-2018-12020.patch | 47 ++++++++++++++++++++++ meta/recipes-support/gnupg/gnupg_2.2.4.bb | 1 + 2 files changed, 48 insertions(+) create mode 100644 meta/recipes-support/gnupg/gnupg/CVE-2018-12020.patch (limited to 'meta/recipes-support') diff --git a/meta/recipes-support/gnupg/gnupg/CVE-2018-12020.patch b/meta/recipes-support/gnupg/gnupg/CVE-2018-12020.patch new file mode 100644 index 0000000000..14698dba72 --- /dev/null +++ b/meta/recipes-support/gnupg/gnupg/CVE-2018-12020.patch @@ -0,0 +1,47 @@ +From 13f135c7a252cc46cff96e75968d92b6dc8dce1b Mon Sep 17 00:00:00 2001 +From: Werner Koch +Date: Fri, 8 Jun 2018 10:45:21 +0200 +Subject: [PATCH] gpg: Sanitize diagnostic with the original file name. + +* g10/mainproc.c (proc_plaintext): Sanitize verbose output. +-- + +This fixes a forgotten sanitation of user supplied data in a verbose +mode diagnostic. The mention CVE is about using this to inject +status-fd lines into the stderr output. Other harm good as well be +done. Note that GPGME based applications are not affected because +GPGME does not fold status output into stderr. + +CVE-id: CVE-2018-12020 +GnuPG-bug-id: 4012 + +Upstream-Status: Backport [https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=commit;h=13f135c7a252cc46cff96e75968d92b6dc8dce1b] + +Signed-off-by: Jagadeesh Krishnanjanappa +--- + g10/mainproc.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/g10/mainproc.c b/g10/mainproc.c +index d2ceec2fd..a9da08f74 100644 +--- a/g10/mainproc.c ++++ b/g10/mainproc.c +@@ -851,7 +851,14 @@ proc_plaintext( CTX c, PACKET *pkt ) + if (pt->namelen == 8 && !memcmp( pt->name, "_CONSOLE", 8)) + log_info (_("Note: sender requested \"for-your-eyes-only\"\n")); + else if (opt.verbose) +- log_info (_("original file name='%.*s'\n"), pt->namelen, pt->name); ++ { ++ /* We don't use print_utf8_buffer because that would require a ++ * string change which we don't want in 2.2. It is also not ++ * clear whether the filename is always utf-8 encoded. */ ++ char *tmp = make_printable_string (pt->name, pt->namelen, 0); ++ log_info (_("original file name='%.*s'\n"), (int)strlen (tmp), tmp); ++ xfree (tmp); ++ } + + free_md_filter_context (&c->mfx); + if (gcry_md_open (&c->mfx.md, 0, 0)) +-- +2.13.3 + diff --git a/meta/recipes-support/gnupg/gnupg_2.2.4.bb b/meta/recipes-support/gnupg/gnupg_2.2.4.bb index d3f1a8f4c4..d6bfaff377 100644 --- a/meta/recipes-support/gnupg/gnupg_2.2.4.bb +++ b/meta/recipes-support/gnupg/gnupg_2.2.4.bb @@ -14,6 +14,7 @@ SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \ file://0002-use-pkgconfig-instead-of-npth-config.patch \ file://0003-dirmngr-uses-libgpg-error.patch \ file://0004-autogen.sh-fix-find-version-for-beta-checking.patch \ + file://CVE-2018-12020.patch \ " SRC_URI_append_class-native = " file://0001-configure.ac-use-a-custom-value-for-the-location-of-.patch" -- cgit v1.2.3-54-g00ecf