漏洞信息详情
Konstanty_Bialkowski libmodplug ‘src/load_med.cpp’整数溢出漏洞
- CNNVD编号:CNNVD-200904-491
- 危害等级: 高危
- CVE编号:
CVE-2009-1438
- 漏洞类型:
数字错误
- 发布时间:
2008-02-25
- 威胁类型:
远程
- 更新时间:
2009-06-09
- 厂 商:
konstanty_bialkowski - 漏洞来源:
dummy dummy@ph4nt0… -
漏洞简介
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
来源: 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
来源: SUSE
名称: SUSE-SR:2009:012
链接:http://lists.opensuse.org/opensuse-security-announce/2009-07/msg00002.html
来源: bugs.gentoo.org