安全研究

安全漏洞
ImLib库_LoadBMP函数拒绝服务漏洞

发布日期:2007-07-03
更新日期:2007-07-05

受影响系统:
Imlib Imlib 1.9.15
描述:
BUGTRAQ  ID: 24750

Imlib是一种图形浏览应用文件库,用于Gnome图形用户环境。

Imlib在处理畸形格式的BMP图像文件时存在漏洞,攻击者可能利用此漏洞导致使用了程序库的应用陷入死循环。

Imlib库的_LoadBMP函数从BMP文件读取了BPP值并使用该值确定在主文件处理循环中的每一步应读取多少位,但以下行没有正确地检测无效的值0x0000:

if (bpp != 1 && bpp != 4 && bpp != 8 && bpp && 16 && bpp != 24 && bpp !=
32)

fprintf(stderr, "IMLIB ERROR: unknown bitdepth in file\n");
return NULL;

错误地引用了&& bpp &&导致无法传送0x0000。

由于使用的bpp值为0x0000,以下循环:

  for (line = (*h - 1); line >= 0; line--)
    {
      linepos = 0;
      for (column = 0; column < *w;)
    {

无法继续,因为循环中的任何情况都不会匹配bpp值为0x0000,这样程序就会陷入死循环。

<*来源:beSTORM
  
  链接:http://www.securitytracker.com/alerts/2007/Jul/1018332.html
*>

建议:
临时解决方法:

* 在648行删除&& bpp &&。

厂商补丁:

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

http://freshmeat.net/projects/imlib/

浏览次数:2743
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障