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,这样程序就会陷入死循环。 Imlib 1.9.15 临时解决方法: * 在648行删除&& bpp &&。 厂商补丁: Imlib ----- 目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本: <a href="http://freshmeat.net/projects/imlib/" target="_blank">http://freshmeat.net/projects/imlib/</a>
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,这样程序就会陷入死循环。 Imlib 1.9.15 临时解决方法: * 在648行删除&& bpp &&。 厂商补丁: Imlib ----- 目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本: <a href="http://freshmeat.net/projects/imlib/" target="_blank">http://freshmeat.net/projects/imlib/</a>