guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/01: gnu: GnuPG 1.4: Fix CVE-2018-12020.


From: Leo Famulari
Subject: 01/01: gnu: GnuPG 1.4: Fix CVE-2018-12020.
Date: Sat, 9 Jun 2018 17:50:29 -0400 (EDT)

lfam pushed a commit to branch master
in repository guix.

commit 65956ad3526ba09e1f7a40722c96c6ef7c0936fe
Author: Leo Famulari <address@hidden>
Date:   Sat Jun 9 17:39:14 2018 -0400

    gnu: GnuPG 1.4: Fix CVE-2018-12020.
    
    * gnu/packages/patches/gnupg-1.4-CVE-2018-12020.patch: New file.
    * gnu/local.mk (dist_patch_DATA): Add it.
    * gnu/packages/gnupg.scm (gnupg-1)[source]: Use it.
---
 gnu/local.mk                                       |  1 +
 gnu/packages/gnupg.scm                             |  1 +
 .../patches/gnupg-1.4-CVE-2018-12020.patch         | 50 ++++++++++++++++++++++
 3 files changed, 52 insertions(+)

diff --git a/gnu/local.mk b/gnu/local.mk
index 7233973..07ca5e2 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -743,6 +743,7 @@ dist_patch_DATA =                                           
\
   %D%/packages/patches/gnome-todo-libical-compat.patch         \
   %D%/packages/patches/gnome-tweak-tool-search-paths.patch     \
   %D%/packages/patches/gnucash-price-quotes-perl.patch         \
+  %D%/packages/patches/gnupg-1.4-CVE-2018-12020.patch          \
   %D%/packages/patches/gnutls-skip-trust-store-test.patch      \
   %D%/packages/patches/gnutls-skip-pkgconfig-test.patch                \
   %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 7b66ee4..42b54c1 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -354,6 +354,7 @@ libskba (working with X.509 certificates and CMS data).")
               (method url-fetch)
               (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
                                   ".tar.bz2"))
+              (patches (search-patches "gnupg-1.4-CVE-2018-12020.patch"))
               (sha256
                (base32
                 "1d1hz4szh1kvwhsw7w2zxa6q5ndrk3qy6hj289l1b8k3xi5s554m"))))
diff --git a/gnu/packages/patches/gnupg-1.4-CVE-2018-12020.patch 
b/gnu/packages/patches/gnupg-1.4-CVE-2018-12020.patch
new file mode 100644
index 0000000..306d4d3
--- /dev/null
+++ b/gnu/packages/patches/gnupg-1.4-CVE-2018-12020.patch
@@ -0,0 +1,50 @@
+Fix CVE-2018-12020:
+
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-12020
+https://lists.gnupg.org/pipermail/gnupg-announce/2018q2/000425.html
+
+Patch copied from upstream source repository:
+
+https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=commit;h=2326851c60793653069494379b16d84e4c10a0ac
+
+From 2326851c60793653069494379b16d84e4c10a0ac Mon Sep 17 00:00:00 2001
+From: Werner Koch <address@hidden>
+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
+(cherry picked from commit 13f135c7a252cc46cff96e75968d92b6dc8dce1b)
+---
+ g10/mainproc.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/g10/mainproc.c b/g10/mainproc.c
+index 33a654b34..ffa7ef6d8 100644
+--- a/g10/mainproc.c
++++ b/g10/mainproc.c
+@@ -638,7 +638,11 @@ 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);
++      {
++        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 );
+     c->mfx.md = md_open( 0, 0);
+     /* fixme: we may need to push the textfilter if we have sigclass 1
+-- 
+2.17.1
+



reply via email to

[Prev in Thread] Current Thread [Next in Thread]