漏洞信息详情
Mozilla Firefox和Mozilla浏览器 堆破坏漏洞
- CNNVD编号:CNNVD-200503-136
- 危害等级: 高危
- CVE编号:
CVE-2005-0592
- 漏洞类型:
缓冲区溢出
- 发布时间:
2005-02-28
- 威胁类型:
远程
- 更新时间:
2005-10-20
- 厂 商:
mozilla - 漏洞来源:
Gael DelalleauiDEF… -
漏洞简介
Mozilla是一款开放源码的Web浏览器。
Mozilla 1.7.3和Firefox 1.0中的实现中存在漏洞,远程利用漏洞可能允许攻击者导致堆破坏,造成执行任意代码。
漏洞存在于依赖mozilla/xpcom/string/src/nsTSubstring.cpp文件中函数的字符串处理函数(如nsCSubstring::Append)中。某些函数(如nsTSubstring_CharT::Replace())不能检查重新划定字符串大小函数的返回值。
xpcom/string/src/nsTSubstring.cpp:
[1] size_type length = tuple.Length();
cutStart = PR_MIN(cutStart, Length());
[2] ReplacePrep(cutStart, cutLength, length);
[3] if (length > 0)
tuple.WriteTo(mData + cutStart, length);
在[1]中,长度被设置为将要拷贝的字符串的长度,并于[2]传送给ReplacePrep()。如果这个函数执行的重新分配失败,则将mData设为固定的地址。
mData = NS_CONST_CAST(char_type*, char_traits::sEmptyBuffer);
mLength = 0;
xpcom/string/src/nsSubstring.cpp中设置了sEmptyBuffer的值:
static const PRUnichar gNullChar = 0;
const char* nsCharTraits<char> ::sEmptyBuffer = (const char*) &gNullChar;
因为没有检查返回值,如果函数失效的话,mData就指向已知的内存位置。通过导致内存消耗直到出现内存耗尽的情况出现,并控制要附加的字符串的值,就可能在[3]导致在已知位置放置任意数据,允许执行任意代码。
漏洞公告
目前厂商已经发布了升级补丁以修复这个安全问题,补丁下载链接:
Firefox 1.0.1
Thunderbird 1.0.1
Mozilla Suite 1.7.6
参考网址
来源: bugzilla.mozilla.org
链接:https://bugzilla.mozilla.org/show_bug.cgi?id=241440
来源: www.mozilla.org
链接:http://www.mozilla.org/security/announce/mfsa2005-15.html
来源: GENTOO
名称: GLSA-200503-30
链接:http://www.gentoo.org/security/en/glsa/glsa-200503-30.xml
来源: GENTOO
名称: GLSA-200503-10
链接:http://www.gentoo.org/security/en/glsa/glsa-200503-10.xml
来源: BID
名称: 12659
链接:http://www.securityfocus.com/bid/12659
来源: REDHAT
名称: RHSA-2005:176
链接:http://www.redhat.com/support/errata/RHSA-2005-176.html
来源: SUSE
名称: SUSE-SA:2006:004
链接:http://www.novell.com/linux/security/advisories/2006_04_25.html
来源: SECUNIA
名称: 19823
链接:http://secunia.com/advisories/19823
来源: US Government Resource: oval:org.mitre.oval:def:100043
名称: oval:org.mitre.oval:def:100043
链接:http://oval.mitre.org/repository/data/getDef?id=oval:org.mitre.oval:def:100043