HOME
COMPANY
SUPPORT
ENTERPRISE
CONTACT US
 
病毒资料查询
漏洞信息列表
间谍软件列表
系统补丁列表
安全新闻
KILL安全产品试用

 

  主页  >>安全信息

Mozilla Firefox和Mozilla浏览器字符串处理堆破坏漏洞
作者:
文章来源:

发布日期:2005-02-28
更新日期:2005-03-01

受影响系统:

Mozilla Firefox 1.0
Mozilla Firefox 0.10.1
Mozilla Mozilla 1.7.3
Mozilla Mozilla 1.7.1

描述:


CVE(CAN) ID: CAN-2005-0255

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]导致在已知位置放置任意数据,允许执行任意代码。

<*来源:Gael Delalleau
        iDEFENSE Security Advisory (labs@idefense.com
  
  链接:www.idefense.com/application/poi/display?id=200
*>

建议:


厂商补丁:

Mozilla
-------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
Firefox 1.0.1
Thunderbird 1.0.1
Mozilla Suite 1.7.6

http://www.mozilla.org/security/announce/mfsa2005-18.html/

 

相关文章 
 

 

    北京冠群金辰软件有限公司 版权所有2008-2011
Copyright(c)2008 by kill.com.cn All right reserver
公司简介 | 荣誉证书 | 销售许可 | 联系我们 | 加入我们   
ICP备案编号:京ICP备05003498号
jia.lihua@ca-jc.com ; zhou.weichen@ca-jc.com; xu.jianbin@ca-jc.com; yu.shenbao@ca-jc.com; chen.zhongyi@ca-jc.com