LibTIFF库整数溢出拒绝服务漏洞

2008-04-09 04:22:46来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

LibTIFF库整数溢出拒绝服务漏洞

发布日期:2004-10-14
更新日期:2004-10-15

受影响系统:
LibTIFF LibTIFF 3.8.1
描述:
CVE(CAN) ID: CVE-2004-0886

libtiff是负责对TIFF图象格式编码/解码的应用库。

libtiff处理畸形TIFF图象格式时存在多个溢出问题,远程攻击者可以利用这些漏洞可能以应用程序权限在系统上执行任意指令。

问题一 tif_next.c在RLE解码过程中存在基于堆的溢出:

off = (bp[0] * 256) bp[1];
n = (bp[2] * 256) bp[3];
if (cc < 4 n)
goto bad;
_TIFFmemcpy(row off, bp 4, n);

这里的off和n可以为任意值。虽然对数据源缓冲区进行边界检查,但对目的缓冲区没有进行任何检查。

问题二 tif_thunder.c在解析RLE时存在基于堆的溢出:

case THUNDER_RUN: /* pixel run */
/*
* Replicate the last pixel n times,
* where n is the lower-order 6 bits.
*/
if (npixels & 1) {
op[0] |= lastpixel;
lastpixel = *op ; npixels ; n--;
} else
lastpixel |= lastpixel << 4;
npixels = n;
for (; n > 0; n -= 2)
*op = (tidataval_t) lastpixel;

其中n可以为任意值,在拷贝时缺少正确边界缓冲区检查。

问题三tif_luv.c在进行RLE解码时可能存在溢出:

for (shft = 2*8; (shft -= 8) >= 0; ) {
for (i = 0; i < npixels && cc > 0; )
if (*bp >= 128) { /* run */
rc = *bp (2-128);
b = (int16)(*bp << shft);
cc -= 2;
while (rc--)
[*] tp[i ] |= b;
} else { /* non-run */
rc = *bp ; /* nul is noop */
while (--cc && rc--)
[*] tp[i ] |= (int16)*bp << shft;

标记为[*]在输出缓冲区大小上缺少充分边界缓冲区检查,可能导致溢出问题。

<*来源:chris (chris@cr-secure.net)

链接:http://marc.theaimsgroup.com/?l=bugtraq&m=109778785107450&w=2
*>

建议:
厂商补丁:

LibTIFF
-------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.libtiff.org/

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:MS Windows Media Player多个安全漏洞

下一篇:Gnofract 4D远程任意代码执行漏洞