LibTIFF LZWDecodeCompat()函数缓冲区溢出漏洞

受影响系统:

LibTIFF LibTIFF 3.8.2

描述:


BUGTRAQ  ID: 35451

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

LibTiff库的libtiff/tif_lzw.c文件中的LZWDecodeCompat()函数在解析特制的TIFF文件时存在缓冲区溢出漏洞:

op += codep->length, occ -= codep->length;
tp = op;
do {
    *–tp = codep->value;
} while( (codep = codep->next) != NULL);

这部分的算法依赖于codep->next调用的次数与codep->length相同,也就是说如果能够让codep->length等于一个很小的值而多次调用codep->next,就可以在tp中触发溢出,例如:

258 [length : 1, next : 259]
259[length : 1, next 260] -> if it were correct, this one should have a length of 0 and next=NULL
260[length: 1, next : 261] …

<*来源:wololo
  
  链接:http://secunia.com/advisories/35515/
        http://www.openwall.com/lists/oss-security/2009/06/22/1
        http://bugzilla.maptools.org/show_bug.cgi?format=multiple&id=2065
        http://www.lan.st/showthread.php?t=1856&page=3
*>

测试方法:


警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

http://bugzilla.maptools.org/attachment.cgi?id=313

建议:


厂商补丁:

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

http://bugzilla.maptools.org/attachment.cgi?id=314

发表评论?

0 条评论。

发表评论