ImageMagick是美国ImageMagick Studio公司的一套开源的图象处理软件。该软件可读取、转换、写入多种格式的图片。 ImageMagick在处理畸形格式的文件时存在缓冲区溢出漏洞,远程攻击者可能利用此漏洞通过诱使用户打开处理恶意文件控制系统。 magick/blob.c文件中的ReadBlobString()函数存在缓冲区溢出漏洞: 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'; string变量是MaxTextExtent长度的字符数组,如果"i"恰好为MaxTextExtent的话就会在3123行触发单字节溢出。有多个图形文件处理例程可以触发这个函数,大多数情况下触发的都是栈溢出,但也可能为堆溢出。
ImageMagick是美国ImageMagick Studio公司的一套开源的图象处理软件。该软件可读取、转换、写入多种格式的图片。 ImageMagick在处理畸形格式的文件时存在缓冲区溢出漏洞,远程攻击者可能利用此漏洞通过诱使用户打开处理恶意文件控制系统。 magick/blob.c文件中的ReadBlobString()函数存在缓冲区溢出漏洞: 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'; string变量是MaxTextExtent长度的字符数组,如果"i"恰好为MaxTextExtent的话就会在3123行触发单字节溢出。有多个图形文件处理例程可以触发这个函数,大多数情况下触发的都是栈溢出,但也可能为堆溢出。