[prev in list] [next in list] [prev in thread] [next in thread]
List: oss-security
Subject: [oss-security] =?UTF-8?B?Q1ZFIHJlcXVlc3QgbGlidGlmZjogb3V0LW9mLWJvdW5kcyByZWFkIGluIENJRSBMYWIgaW1h?=
From: "=?UTF-8?B?6IyD56Wa6IezKOW6k+eJuSk=?=" <zuozhi.fzz () alibaba-inc ! com>
Date: 2015-12-25 10:02:39
Message-ID: b60b0b56-4be9-4f63-9cb2-4a1c28f36f09.zuozhi.fzz () alibaba-inc ! com
[Download RAW message or body]
[Attachment #2 (multipart/alternative)]
[Attachment #4 (text/plain)]
If the data of image is packed(e.g., TIFFDirectory.td_samplesperpixel == \
1,TIFFDirectory.td_bitspersample == 8), a pixel only owns one byte. But in theimplementation of \
putcontig8bitCIELab, it eats 3 bytes per pixel. This willlead to an out-of-bounds read \
vulnerability.vuln code in tif_getimage.c, libtiff v4.0.61699 \
DECLAREContigPutFunc(putcontig8bitCIELab)1700 {1701 float X, Y, Z;1702 uint32 \
r, g, b;1703 (void) y;1704 fromskew *= 3;1705 while (h-- > 0) {1706 \
for (x = w; x-- > 0;) {1707 TIFFCIELabToXYZ(img->cielab,1708 \
(unsigned char)pp[0],1709 (signed char)pp[1],1710 \
(signed char)pp[2],1711 &X, &Y, &Z);1712 \
TIFFXYZToRGB(img->cielab, X, Y, Z, &r, &g, &b);1713 *cp++ = PACK(r, g, \
b);1714 pp += 3;1715 }1716 cp += \
toskew;1717 pp += fromskew;1718 }1719 }I use the tutorial code from \
http://www.remotesensing.org/libtiff/libtiff.htmlto test that, and poc is in the attachment. \
#include "tiffio.h" main(int argc, char* argv[]) { TIFF* tif = TIFFOpen(argv[1], \
"r"); if (tif) { TIFFRGBAImage img; char emsg[1024]; \
if (TIFFRGBAImageBegin(&img, tif, 0, emsg)) { size_t npixels; \
uint32* raster; npixels = img.width * img.height; \
raster = (uint32*) _TIFFmalloc(npixels * sizeof (uint32)); if (raster != NULL) { \
if (TIFFRGBAImageGet(&img, raster, img.width, img.height)) { ...process \
raster data... } _TIFFfree(raster); } \
TIFFRGBAImageEnd(&img); } else TIFFError(argv[1], emsg); \
TIFFClose(tif); } exit(0); }If it would be assigned a CVE, please credit it \
for: zzf of Alibaba.
[Attachment #5 (text/html)]
<div class="__aliyun_email_body_block"><div style="clear: both;"><span style="font-family: \
Tahoma, Arial, STHeiti, SimSun; font-size: 14px; color: rgb(0, 0, 0);"><span style="color: \
rgb(0, 0, 0); font-family: 'courier new'; font-size: \
10px;">If the data of image is packed(e.g., TIFFDirectory.td_samplesperpixel == 1,<br \
>TIFFDirectory.td_bitspersample == 8), a pixel only owns one byte. But in the<br \
> >implementation of putcontig8bitCIELab, it eats 3 bytes per pixel. This will<br \
> > >lead to an out-of-bounds read vulnerability.<br ><br \
> > > >vuln code in tif_getimage.c, libtiff v4.0.6<br ><br \
> > > > >1699 DECLAREContigPutFunc(putcontig8bitCIELab)<br >1700 {<br \
> > > > > >1701 float X, Y, Z;<br \
> > > > > > >1702 uint32 r, g, b;<br \
> > > > > > > >1703 (void) y;<br \
> > > > > > > > >1704 fromskew *= 3;<br \
> > > > > > > > > >1705 while (h-- > 0) {<br \
> > > > > > > > > > >1706   \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
["=?UTF-8?B?cG9jMDI5LnppcA==?=" (application/octet-stream)]
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic