手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>服务器技术>安全防护>列表

libtiff Directory Entry计数整数溢出漏洞

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
libtiff Directory Entry计数整数溢出漏洞

发布日期:2004-12-21
更新日期:2004-12-22

受影响系统:
LibTIFF LibTIFF 3.7.0
LibTIFF LibTIFF 3.5.7
不受影响系统:
LibTIFF LibTIFF 3.7.1
描述:
libtiff是负责对TIFF图象格式编码/解码的应用库。

libtiff在处理'directory entry'计数时存在问题,远程攻击者可以利用这个漏洞进行基于堆的缓冲区溢出,精心构建文件数据可能以用户进程权限执行任意指令。

问题是当计算'directory entry'大小时没有充分验证用户提供的数据。一个TIFF文件会包含多个'directory entry'头字段来描述文件中的数据,其中使用一个计数器和偏移值来计算判断大小和定位数据,如果'directory entry'类型是TIFF_ASCII或TIFF_UNDEFINED,if_dirread.c文件的CheckMalloc就会为这些条目内容分配空间:

cp = CheckMalloc(tif, dp->tdir_count 1, 1, mesg); if( (ok = (cp && TIFFFetchString(tif, dp, cp))) != 0 ) cp[dp->tdir_count] = '\0'; /* XXX */

如果tdir_count设置为0xffffffff,会导致函数调用分配0字节内存,然后后续的内存拷贝会导致缓冲区溢出,精心构建TIFF文件,可能以用户进程权限执行任意指令。

<*来源:infamous41md (infamous41md@hotpop.com)

链接:http://www.idefense.com/application/poi/display?id=174&type=vulnerabilities
*>

建议:
临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

* 可采用如下补丁:

--- tif_dirread.c.bak 2004-12-19 21:04:00.000000000 0300 tif_dirread.c 2004-12-19 21:04:03.000000000 0300@@ -71,7 71,7 @@ /* * XXX: Check for integer overflow. */- if (elem_size && bytes / elem_size == nmemb) if (nmemb && elem_size && bytes / elem_size == nmemb) cp = (char*)_TIFFmalloc(bytes); if (cp == NULL)

厂商补丁:

LibTIFF
-------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载libtiff 3.7.1:

http://www.libtiff.org/

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!