安全研究

安全漏洞
ImageMagick ReadDIBImage函数整数溢出漏洞

发布日期:2007-09-21
更新日期:2007-09-24

受影响系统:
ImageMagick ImageMagick < 6.3.5-9
不受影响系统:
ImageMagick ImageMagick 6.3.5-9
ImageMagick ImageMagick 6.3.5-10
描述:
BUGTRAQ  ID: 25765
CVE(CAN) ID: CVE-2007-4988

ImageMagick是一款Unix/Linux平台下开源的图像查看和编辑工具。

ImageMagick在处理带有畸形数据的文件时存在整数漏洞,远程攻击者可能诱使用户处理恶意文件控制用户系统。

ImageMagick的ReadDIBImage()函数中存在整数溢出漏洞:

  558    image->columns=(unsigned long) dib_info.width
  ...
  620    bytes_per_line=4*((image->columns*dib_info.bits_per_pixel+31)/32);
  621    length=bytes_per_line*image->rows;
  622    pixels=(unsigned char *) AcquireMagickMemory((size_t) MagickMax(
  623      bytes_per_line,image->columns+256)*image->rows*sizeof(*pixels));
  ...
  629       count=ReadBlob(image,length,pixels);
  ...
  638       status=DecodeImage(image,dib_info.compression ? MagickTrue : MagickFalse,pixels);

在558行dib_info.width为有符短型,然后会被扩展为无符长型并分配给image->columns。例如,0x8000会被扩展为0xffff8000,然后在计算分配的大小时用作了乘数。整数溢出会导致分配了不充分的堆块,之后触发堆溢出。

<*来源:regenrecht
  
  链接:http://studio.imagemagick.org/pipermail/magick-announce/2007-September/000037.html
        http://www.imagemagick.org/script/changelog.php
        http://secunia.com/advisories/26926/
        http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=597
        http://security.gentoo.org/glsa/glsa-200710-27.xml
*>

建议:
临时解决方法:

* 删除相关的模块文件。

厂商补丁:

Gentoo
------
Gentoo已经为此发布了一个安全公告(GLSA-200710-27)以及相应补丁:
GLSA-200710-27:ImageMagick: Multiple vulnerabilities
链接:http://security.gentoo.org/glsa/glsa-200710-27.xml

所有ImageMagick用户都应升级到最新版本:

    # emerge --sync
    # emerge --ask --oneshot --verbose ">=media-gfx/imagemagick-6.3.5.10"

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

ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-6.3.5-10.tar.gz

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