From 5ad9d8016fbb60109302d558f7edb2cb2a3bb8e3 Mon Sep 17 00:00:00 2001 From: erouault Date: Sat, 8 Oct 2016 15:54:56 +0000 Subject: [PATCH] fix CVE-2016-9540 * tools/tiffcp.c: fix out-of-bounds write on tiled images with odd tile width vs image width. Reported as MSVR 35103 by Axel Souchet and Vishal Chauhan from the MSRC Vulnerabilities & Mitigations team. CVE: CVE-2016-9540 Upstream-Status: Backport https://github.com/vadz/libtiff/commit/5ad9d8016fbb60109302d558f7edb2cb2a3bb8e3 Signed-off-by: Zhixiong Chi --- ChangeLog | 7 +++++++ tools/tiffcp.c | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) Index: tiff-4.0.4/ChangeLog =================================================================== --- tiff-4.0.4.orig/ChangeLog 2016-11-24 14:40:43.046867737 +0800 +++ tiff-4.0.4/ChangeLog 2016-11-28 14:38:01.681276171 +0800 @@ -17,6 +17,13 @@ Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2500 (CVE-2014-8127, duplicate: CVE-2016-3658) +2016-10-08 Even Rouault + + * tools/tiffcp.c: fix out-of-bounds write on tiled images with odd + tile width vs image width. Reported as MSVR 35103 + by Axel Souchet and Vishal Chauhan from the MSRC Vulnerabilities & + Mitigations team. + 2016-09-24 Bob Friesenhahn * libtiff/tif_getimage.c (TIFFRGBAImageOK): Reject attempts to Index: tiff-4.0.4/tools/tiffcp.c =================================================================== --- tiff-4.0.4.orig/tools/tiffcp.c 2015-06-21 09:09:10.000000000 +0800 +++ tiff-4.0.4/tools/tiffcp.c 2016-11-28 14:41:02.221277430 +0800 @@ -1338,7 +1338,7 @@ uint32 colb = 0; uint32 col; - for (col = 0; col < imagewidth; col += tw) { + for (col = 0; col < imagewidth && colb < imagew; col += tw) { if (TIFFReadTile(in, tilebuf, col, row, 0, 0) < 0 && !ignore) { TIFFError(TIFFFileName(in), @@ -1523,7 +1523,7 @@ uint32 colb = 0; uint32 col; - for (col = 0; col < imagewidth; col += tw) { + for (col = 0; col < imagewidth && colb < imagew; col += tw) { /* * Tile is clipped horizontally. Calculate * visible portion and skewing factors.