Konstanty_Bialkowski libmodplug ‘src/load_med.cpp’整数溢出漏洞

漏洞信息详情

Konstanty_Bialkowski libmodplug ‘src/load_med.cpp’整数溢出漏洞

漏洞简介

Libmodplug是Stephane Denis和Ivan Vecera程序员共同开发的一个用于处理mod类音乐格式的开源函数库。

Libmodplug库的src/load_med.cpp文件中的CSoundFile::ReadMed()函数在加载MED文件时存在可导致堆溢出的整数溢出漏洞,以下是load_med.cpp中的有漏洞代码段:

698 // Song Comments

699 UINT annotxt = bswapBE32(pmex->;annotxt);

700 UINT annolen = bswapBE32(pmex->;annolen);

701 if ((annotxt) & & (annolen) & & (annotxt+annolen <= dwMemLength))

702 {

703 m_lpszSongComments = new char[annolen+1];

704 memcpy(m_lpszSongComments, lpStream+annotxt, annolen);

705 m_lpszSongComments[annolen] = 0;

706 }

这是个很典型的整数溢出,annolen为0xFFFFFFFF(即有符号整数-1)时,导致703行new char[0]。这个0字节分配可以成功返回,所以即使703行后加上类似if(m_lpszSongComments){…}的检查代码也无法防范这个漏洞。704行进行memcpy,因为annolen为0xFFFFFFFF,导致了堆溢出,触发内存读写越界异常。

漏洞公告

目前厂商已经发布了升级补丁以修复这个安全问题,补丁下载链接:

http://sourceforge.net/project/shownotes.php?release_id=677065&group_id=1275

参考网址

来源: VUPEN

名称: ADV-2009-1104

链接:http://www.vupen.com/english/advisories/2009/1104

来源: BID

名称: 30801

链接:http://www.securityfocus.com/bid/30801

来源: sourceforge.net

链接:http://sourceforge.net/project/shownotes.php?release_id=677065&group_id=1275

来源: OSVDB

名称: 53801

链接:http://osvdb.org/53801

来源: bugzilla.redhat.com

链接:https://bugzilla.redhat.com/show_bug.cgi?id=496834

来源: XF

名称: libmodplug-csoundfilereadmed-bo(50388)

链接:http://xforce.iss.net/xforce/xfdb/50388

来源: UBUNTU

名称: USN-771-1

链接:http://www.ubuntu.com/usn/USN-771-1

来源: FEDORA

名称: FEDORA-2009-4068

链接:http://www.redhat.com/archives/fedora-package-announce/2009-April/msg00908.html

来源: FEDORA

名称: FEDORA-2009-4064

链接:http://www.redhat.com/archives/fedora-package-announce/2009-April/msg00907.html

来源: MLIST

名称: [oss-security] 20090421 CVE Request — libmodplug

链接:http://www.openwall.com/lists/oss-security/2009/04/21/4

来源: MANDRIVA

名称: MDVSA-2009:128

链接:http://www.mandriva.com/security/advisories?name=MDVSA-2009:128

来源: DEBIAN

名称: DSA-1851

链接:http://www.debian.org/security/2009/dsa-1851

来源: DEBIAN

名称: DSA-1850

链接:http://www.debian.org/security/2009/dsa-1850

来源: GENTOO

名称: GLSA-200907-07

链接:http://security.gentoo.org/glsa/glsa-200907-07.xml

来源: SECUNIA

名称: 36183

链接:http://secunia.com/advisories/36183

来源: SECUNIA

名称: 36158

链接:http://secunia.com/advisories/36158

来源: SECUNIA

名称: 35736

链接:http://secunia.com/advisories/35736

来源: SECUNIA

名称: 35685

链接:http://secunia.com/advisories/35685

来源: SECUNIA

名称: 35026

链接:http://secunia.com/advisories/35026

来源: SECUNIA

名称: 34930

链接:http://secunia.com/advisories/34930

来源: SECUNIA

名称: 34797

链接:http://secunia.com/advisories/34797

来源: MISC

链接:http://modplug-xmms.cvs.sourceforge.net/viewvc/modplug-xmms/libmodplug/src/load_med.cpp?r1=1.1&r2=1.2

来源: SUSE

名称: SUSE-SR:2009:012

链接:http://lists.opensuse.org/opensuse-security-announce/2009-07/msg00002.html

来源: bugs.gentoo.org

链接:http://bugs.gentoo.org/show_bug.cgi?id=266913

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