|
|
|
|
| |
Credit:
The information has been provided by iDefense Labs Security Advisories.
The original article can be found at: http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=595
|
| |
Vulnerable Systems:
* ImageMagick version 6.3.4
Immune Systems:
* ImageMagick version 6.3.5-9
This vulnerability specifically exists in the ReadBlobString() function in magick/blob.c as shown below.
3110 for (i=0; i < (long) MaxTextExtent; i++)
3111 {
3112 p=ReadBlobStream(image,1,buffer,&count);
...
3119 string[i]=(char) (*p);
3120 if ((string[i] == '\n') || (string[i] == '\r'))
3121 break;
3122 }
3123 string[i]='\0';
The variable "string" is a character array of length "MaxTextExtent". An off-by-one buffer overflow will occur on line 3123 when "i" is exactly "MaxTextExtent". This function is called from several image file processing routines. Most of the buffers involved are stack based, although some are on the heap.
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.
Exploitation in stack-based scenarios depends on the stack layout, which depends on the compiler and compiler options used to build the library.
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
CVE Information:
CVE-2007-4987
Disclosure Timeline:
09/04/2007 - Initial vendor notification
09/05/2007 - Initial vendor response
09/19/2007 - Coordinated public disclosure
|
|
|
|
|