SDL_image无效GIF文件LWZ Minimum Code Size远程缓冲区溢出漏洞

漏洞信息详情

SDL_image无效GIF文件LWZ Minimum Code Size远程缓冲区溢出漏洞

漏洞简介

SDL_Image是用于处理图形文件的开源函数库。
SDL_Image在处理畸形格式的图形文件时存在漏洞,远程攻击者可能利用此漏洞通过诱使用户处理恶意文件控制用户系统。
SDL_Image库没有正确地处理Table Based Image Data头中带有无效LWZ Minimum Code Size的图形文件。标准允许代码的最大大小为12位,但SDL_image没有执行检查,因此可能触发缓冲区溢出。以下是IMG_gif.c文件的ReadImage函数中的漏洞代码:

unsigned char c;

if (LWZReadByte(src, TRUE, c) < 0) {
RWSetMsg(\”error reading image\”);
return NULL;
}
/*
** If this is an \”uninteresting picture\” ignore it.
*/
if (ignore) {
while (LWZReadByte(src, FALSE, c) >= 0)
;
return NULL;
}

请注意c值未经任何检查便传送给了LZWReadByte。
然后在LWZReadByte函数中可能会触发栈溢出:
LWZReadByte(SDL_RWops *src, int flag, int input_code_size)

static int table[2][(1 << MAX_LWZ_BITS)];

set_code_size = input_code_size;

clear_code = 1 << set_code_size;

for (i = 0; i < clear_code; ++i) {
table[0][i] = 0;
table[1][i] = i;
}

漏洞公告

目前厂商已经发布了升级补丁以修复这个安全问题,补丁下载链接:
HTTP://www.libsdl.org/cgi/viewvc.cgi/trunk/SDL_image/IMG_gif.c?r1=2970&r2=3462

参考网址

来源 :www.libsdl.org
链接:http://www.libsdl.org/cgi/viewvc.cgi/trunk/SDL_image/CHANGES?revision=3462&view=markup

来源 : XF
名称: sdlimage-gif-bo(39865)
链接:http://xforce.iss.net/xforce/xfdb/39865

来源 : BID
名称: 27417
链接:http://www.securityfocus.com/bid/27417

来源 : www.libsdl.org
链接:http://www.libsdl.org/cgi/viewvc.cgi/trunk/SDL_image/IMG_gif.c?r1=2970&r2=3462

来源 : VUPEN
名称: ADV-2008-0266
链接:http://www.frsirt.com/english/advisories/2008/0266

来源 : MISC
链接:http://vexillium.org/?sec-sdlgif

来源 : SECUNIA
名称: 28640
链接:http://secunia.com/advisories/28640

来源 : BUGTRAQ
名称: 20080123 SDL_Image 1.2.6 and prior GIF handling buffer overflow
链接:http://marc.info/?l=bugtraq&m=120110205511630&w=2

来源 : FEDORA
名称: FEDORA-2008-1231
链接:https://www.redhat.com/archives/fedora-package-announce/2008-February/msg00039.html

来源 : FEDORA
名称: FEDORA-2008-1208
链接:https://www.redhat.com/archives/fedora-package-announce/2008-February/msg00008.html

来源 : issues.rpath.com
链接:https://issues.rpath.com/browse/RPL-2206

来源 : UBUNTU
名称: USN-595-1
链接:http://www.ubuntu.com/usn/usn-595-1

来源 : BUGTRAQ
名称: 20080213 rPSA-2008-0061-1 SDL_image
链接:http://www.securityfocus.com/archive/1/archive/1/488079/100/0/threaded

来源 : MANDRIVA
名称: MDVSA-2008:040
链接:http://www.mandriva.com/security/advisories?name=MDVSA-2008:040

来源 : GENTOO
名称: GLSA-200802-01
链接:http://www.gentoo.org/security/en/glsa/glsa-200802-01.xml

来源 : DEBIAN
名称: DSA-1493
链接:http://www.debian.org/security/2008/dsa-1493

来源: wiki.rpath.com
链接:http://wiki.rpath.com/Advisories:rPSA-2008-0061

来源: SECUNIA
名称: 29542
链接:http://secunia.com/advisories/29542

来源 : SECUNIA
名称: 28869
链接:http://secunia.com/advisories/28869

来源: SECUNIA
名称: 28850
链接:http://secunia.com/advisories/28850

来源: SECUNIA
名称: 28837
链接:http://secunia.com/advisories/28837

来源: SECUNIA
名称: 28830
链接:http://secunia.com/advisories/28830

来源: SECUNIA
名称: 28752
链接:http://secunia.com/advisories/28752

来源:bugs.gentoo.org
链接:http://bugs.gentoo.org/show_bug.cgi?id=207933

受影响实体

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享