summary refs log tree commit diff
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2016-05-30 09:35:10 +0300
committerEfraim Flashner <efraim@flashner.co.il>2016-05-30 09:57:09 +0300
commit9116f1269089ecf88ed9465498f7f9482dd978c6 (patch)
tree40092433e7ebd4eb82cb5dc5e83970c4bcdf5975
parentd01f680c07294b4b8e981ac78da5b551951175bc (diff)
downloadguix-9116f1269089ecf88ed9465498f7f9482dd978c6.tar.gz
gnu: antiword: Fix CVE-2014-8123.
* gnu/packages/textutils.scm (antiword)[source]: Add patch.
* gnu/packages/patches/antiword-CVE-2014-8123: New variable.
* gnu/local.mk (dist_patch_DATA): Add it.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/antiword-CVE-2014-8123.patch21
-rw-r--r--gnu/packages/textutils.scm5
3 files changed, 26 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index f5745d3372..4dda1fa28a 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -424,6 +424,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/aegis-test-fixup-2.patch            	\
   %D%/packages/patches/agg-am_c_prototype.patch			\
   %D%/packages/patches/alsa-lib-mips-atomic-fix.patch		\
+  %D%/packages/patches/antiword-CVE-2014-8123.patch			\
   %D%/packages/patches/apr-skip-getservbyname-test.patch	\
   %D%/packages/patches/arb-ldconfig.patch			\
   %D%/packages/patches/ath9k-htc-firmware-binutils.patch	\
diff --git a/gnu/packages/patches/antiword-CVE-2014-8123.patch b/gnu/packages/patches/antiword-CVE-2014-8123.patch
new file mode 100644
index 0000000000..d8d346a634
--- /dev/null
+++ b/gnu/packages/patches/antiword-CVE-2014-8123.patch
@@ -0,0 +1,21 @@
+Description: Add check for buffer overflow with malformed input files
+ This was later re-found and became CVE-2014-8123. 
+Author: <eriks@debian.org>
+Bug-Debian: http://bugs.debian.org/407015
+Bug-Debian: https://bugs.debian.org/771768
+Forwarded: http://seclists.org/oss-sec/2014/q4/870
+Last-Update: 2016-01-11
+
+--- antiword-0.37~/wordole.c	2005-08-26 21:49:57.000000000 +0200
++++ antiword-0.37/wordole.c	2009-06-03 22:31:15.948014682 +0200
+@@ -259,6 +259,10 @@
+ 		}
+ 		tNameSize = (size_t)usGetWord(0x40, aucBytes);
+ 		tNameSize = (tNameSize + 1) / 2;
++		if ( tNameSize > sizeof(atPPSlist[iIndex].szName)) {
++			werr(0, "Name Size of PPS %d is too large", iIndex);
++			tNameSize = sizeof(atPPSlist[iIndex].szName);
++		}
+ 		vName2String(atPPSlist[iIndex].szName, aucBytes, tNameSize);
+ 		atPPSlist[iIndex].ucType = ucGetByte(0x42, aucBytes);
+ 		if (atPPSlist[iIndex].ucType == 5) {
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index 080c95ba1c..ebcf4b9a1f 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2015 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
+;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -29,6 +30,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system trivial)
+  #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages python)
   #:use-module (gnu packages zip))
@@ -306,7 +308,8 @@ regular expression object can be specified.")
                                   "/antiword-" version ".tar.gz"))
               (sha256
                (base32
-                "1b7mi1l20jhj09kyh0bq14qzz8vdhhyf35gzwsq43mn6rc7h0b4f"))))
+                "1b7mi1l20jhj09kyh0bq14qzz8vdhhyf35gzwsq43mn6rc7h0b4f"))
+              (patches (search-patches "antiword-CVE-2014-8123.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; There are no tests