iDefense Security Advisory 09.19.07: Multiple Vendor ImageMagick Sign Extension Vulnerability
Multiple Vendor ImageMagick Sign Extension Vulnerability
iDefense Security Advisory 09.19.07
http://labs.idefense.com/intelligence/vulnerabilities/
Sep 19, 2007
I. BACKGROUND
ImageMagick is a suite of image manipulation tools (animate, composite,
conjure, convert, display, identify, import, mogrify and montage) that
are sometimes used by other applications for processing image files.
For more information about ImageMagick, visit the vendor's site at the
following URL.
http://www.imagemagick.org/
II. DESCRIPTION
Remote exploitation of a sign extension vulnerability in ImageMagick, as
included in various vendors' operating system distributions, allows
attackers to execute arbitrary code.
This vulnerability specifically exists in the ReadDIBImage() as shown
below.
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);
At line 558, "dib_info.width" is a signed short, which is extended to an
unsigned long and assigned to "image->columns". For example, a value of
0x8000 will be extended to 0xffff8000. Later, it is used as a
multiplier when calculating the allocation size. An integer overflow
occurs, leading to a heap block of insufficient size being allocated.
Consequently, a heap buffer overflow occurs.
III. ANALYSIS
Exploitation of this vulnerability allows an attacker to execute
arbitrary code in the context of the user.
One way of exploiting this vulnerability is to persuade a targeted user
to open a malicious image file with a program that utilizes the
ImageMagick library.
As the tools that are part of ImageMagick are sometimes used as helper
tools by other applications, this user may be the same as the web
server user. This scenario is somewhat more severe than the previously
described attack vector since the image processing can occur
automatically.
IV. DETECTION
iDefense Labs confirmed that ImageMagick version 6.3.4 is vulnerable. It
is suspected that other versions of ImageMagick are also vulnerable.
V. WORKAROUND
Exposure to this vulnerability can be mitigated by moving or deleting
the related module files. The file locations may vary between
distributions. The globbing expression listed below corresponds to a
Red Hat Linux system.
/usr/lib/ImageMagick-*/modules*/coders/dib.*
VI. VENDOR RESPONSE
The ImageMagick maintainers have addressed this vulnerability with the
release of version 6.3.5-9. More information is available from the
following URL.
http://studio.imagemagick.org/pipermail/magick-announce/2007-September/000037.html
VII. CVE INFORMATION
The Common Vulnerabilities and Exposures (CVE) project has assigned the
name CVE-2007-4988 to this issue. This is a candidate for inclusion in
the CVE list (http://cve.mitre.org/), which standardizes names for
security problems.
VIII. DISCLOSURE TIMELINE
09/04/2007 Initial vendor notification
09/05/2007 Initial vendor response
09/19/2007 Public disclosure
IX. CREDIT
This vulnerability was reported to iDefense by regenrecht.
Get paid for vulnerability research
http://labs.idefense.com/methodology/vulnerability/vcp.php
Free tools, research and upcoming events
http://labs.idefense.com/
X. LEGAL NOTICES
Copyright © 2007 iDefense, Inc.
Permission is granted for the redistribution of this alert
electronically. It may not be edited in any way without the express
written consent of iDefense. If you wish to reprint the whole or any
part of this alert in any other medium other than electronically,
please e-mail customerservice@xxxxxxxxxxxx for permission.
Disclaimer: The information in the advisory is believed to be accurate
at the time of publishing based on currently available information. Use
of the information constitutes acceptance for use in an AS IS condition.
There are no warranties with regard to this information. Neither the
author nor the publisher accepts any liability for any direct,
indirect, or consequential loss or damage arising from use of, or
reliance on, this information.