]> code.ossystems Code Review - openembedded-core.git/commitdiff
tiff: Security fix for CVE-2017-7601
authorRajkumar Veer <rveer@mvista.com>
Sat, 4 Nov 2017 05:31:50 +0000 (22:31 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 5 Nov 2017 22:39:26 +0000 (22:39 +0000)
Signed-off-by: Rajkumar Veer <rveer@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
meta/recipes-multimedia/libtiff/files/CVE-2017-7601.patch [new file with mode: 0644]
meta/recipes-multimedia/libtiff/tiff_4.0.7.bb

diff --git a/meta/recipes-multimedia/libtiff/files/CVE-2017-7601.patch b/meta/recipes-multimedia/libtiff/files/CVE-2017-7601.patch
new file mode 100644 (file)
index 0000000..1b3c6c8
--- /dev/null
@@ -0,0 +1,52 @@
+From 0a76a8c765c7b8327c59646284fa78c3c27e5490 Mon Sep 17 00:00:00 2001
+From: erouault <erouault>
+Date: Wed, 11 Jan 2017 16:13:50 +0000
+Subject: [PATCH] * libtiff/tif_jpeg.c: validate BitsPerSample in
+ JPEGSetupEncode() to avoid undefined behaviour caused by invalid shift
+ exponent. Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2648
+
+Upstream-Status: Backport
+
+CVE: CVE-2017-7601
+Signed-off-by: Rajkumar Veer <rveer@mvista.com>
+Index: tiff-4.0.7/ChangeLog
+===================================================================
+--- tiff-4.0.7.orig/ChangeLog  2017-04-25 18:21:32.856116417 +0530
++++ tiff-4.0.7/ChangeLog       2017-04-25 18:35:31.904129477 +0530
+@@ -1,4 +1,3 @@
+-
+ 2017-01-12 Even Rouault <even.rouault at spatialys.com>
+       * libtiff/tif_ojpeg.c: fix leak in OJPEGReadHeaderInfoSecTablesQTable,
+@@ -9,6 +8,12 @@
+ 2017-01-11 Even Rouault <even.rouault at spatialys.com>
++      * libtiff/tif_jpeg.c: validate BitsPerSample in JPEGSetupEncode() to avoid
++      undefined behaviour caused by invalid shift exponent.
++      Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2648
++
++2017-01-11 Even Rouault <even.rouault at spatialys.com>
++
+       * libtiff/tif_dirread.c: avoid division by floating point 0 in
+       TIFFReadDirEntryCheckedRational() and TIFFReadDirEntryCheckedSrational(),
+       and return 0 in that case (instead of infinity as before presumably)
+Index: tiff-4.0.7/libtiff/tif_jpeg.c
+===================================================================
+--- tiff-4.0.7.orig/libtiff/tif_jpeg.c 2017-04-25 18:21:32.744116415 +0530
++++ tiff-4.0.7/libtiff/tif_jpeg.c      2017-04-25 18:38:02.200131817 +0530
+@@ -1632,7 +1632,13 @@
+                                    "Invalig horizontal/vertical sampling value");
+                       return (0);
+                 }
+-
++                if( td->td_bitspersample > 16 )
++                {
++                    TIFFErrorExt(tif->tif_clientdata, module,
++                                 "BitsPerSample %d not allowed for JPEG",
++                                 td->td_bitspersample);
++                    return (0);
++                }
+               /*
+                * A ReferenceBlackWhite field *must* be present since the
+                * default value is inappropriate for YCbCr.  Fill in the
index 73deeba687f73022f9e84715d5f97cae12d786c9..7f438dad9acb1e9c0b9152cd46960f4b67edad08 100644 (file)
@@ -24,6 +24,7 @@ SRC_URI = "http://download.osgeo.org/libtiff/tiff-${PV}.tar.gz \
            file://CVE-2017-7595.patch \
            file://CVE-2017-7596.patch \
            file://CVE-2017-7598.patch \
+           file://CVE-2017-7601.patch \
         "
 
 SRC_URI[md5sum] = "77ae928d2c6b7fb46a21c3a29325157b"