LibTIFF库整数溢出拒绝服务漏洞
2008-04-09 04:22:46来源:互联网 阅读 ()
发布日期: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
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash