<p>Disclaimer:<br>&nbsp;&nbsp;&nbsp; The information in this email is distributed WITHOUT ANY WARRANTY, TO THE<br>&nbsp;&nbsp;&nbsp; EXTENT PERMITTED BY APPLICABLE LAW; without even the implied warranty of<br>&nbsp;&nbsp;&nbsp; CORRECTNESS or FITNESS FOR A PARTICULAR PURPOSE. You know the drill...
</p>
<p>Affected products:<br>&nbsp;&nbsp;&nbsp; Various COM objects when loaded in Microsoft Internet Explorer.</p>
<p>Extend:<br>&nbsp;&nbsp;&nbsp; DoS and remote arbitrary code execution.</p>
<p>Patches:<br>&nbsp;&nbsp;&nbsp; MS05-037 and MS05-38<br>&nbsp;&nbsp;&nbsp; See below for additional killbit.<br>Exploits:<br>&nbsp;&nbsp;&nbsp; Internet Exploiter 4 will not be released to the public in the near future.<br>&nbsp;&nbsp;&nbsp; Public exploits based on Internet Exploiter have been written by third
<br>&nbsp;&nbsp;&nbsp; parties for a number of affected objects. They are available on the net<br>&nbsp;&nbsp;&nbsp; from various sources.</p>
<p>Short description:<br>&nbsp;&nbsp;&nbsp; A number of issues have been reported lately by various sources about<br>&nbsp;&nbsp;&nbsp; Internet Explorer vulnerabilities in relation to specific COM objects.<br>&nbsp;&nbsp;&nbsp; Research has shown that the root cause is the fact that these COM objects
<br>&nbsp;&nbsp;&nbsp; are not designed to be loaded in IE at all. These objects therefore make<br>&nbsp;&nbsp;&nbsp; wrongful assumptions about the state of the process they are loaded into,<br>&nbsp;&nbsp;&nbsp; specifically about the contents of heap memory. This can be abused to
<br>&nbsp;&nbsp;&nbsp; uncover unwanted features, like the ability to run arbitrary code on a<br>&nbsp;&nbsp;&nbsp; victims machine.<br>&nbsp;&nbsp;&nbsp; <br>Short History:<br>&nbsp;&nbsp;&nbsp; On June 24th 2002 <a href="mailto:'ken'@FTU">'ken'@FTU</a> reported a NULL-pointer exception in IE when
<br>&nbsp;&nbsp;&nbsp; loading a specific COM object. The object was mmsys.cpl which uses<br>&nbsp;&nbsp;&nbsp; clsid:{00022613-0000-0000-C000-000000000046}. The issue was discarded as<br>&nbsp;&nbsp;&nbsp; a low impact DoS.</p>
<p>&nbsp;&nbsp;&nbsp; On April 18th 2005, Further research revealed that this was in fact a<br>&nbsp;&nbsp;&nbsp; problem with the COM object reusing previously freed memory without<br>&nbsp;&nbsp;&nbsp; initialising it. Part of the reused memory was used as a function pointer.
<br>&nbsp;&nbsp;&nbsp; Careful allocating and freeing of memory prior to loading the object<br>&nbsp;&nbsp;&nbsp; allowed remote code execution on Win2K. Internet Exploiter 4 was born.<br>&nbsp;&nbsp;&nbsp; (This vulnerability does NOT seem to be exploitable on WinXPSP2, as claimed
<br>&nbsp;&nbsp;&nbsp; by FrSIRT in their MS05-038 exploit)<br>&nbsp;&nbsp;&nbsp; On June 17th 2005, Bernhard Müller and Martin Eiszner found a similar issue<br>&nbsp;&nbsp;&nbsp; when loading javaprxy.dll and released their information to the public.<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; On July 2nd, August 9th and August 17th 2005, FrSIRT released shamelessly
<br>&nbsp;&nbsp;&nbsp; ripped code that claims to exploit a number of these objects. While failing<br>&nbsp;&nbsp;&nbsp; to work on most occasions through lack of finesse, it does prove that even<br>&nbsp;&nbsp;&nbsp; script-kiddies can easily write exploits by copy-pasting my Internet
<br>&nbsp;&nbsp;&nbsp; Exploiter heap spraying code. It takes so little effort that it might<br>&nbsp;&nbsp;&nbsp; actually cost you more time to add proper credits to the original author<br>&nbsp;&nbsp;&nbsp; of the code.</p>
<p>Solution:<br>&nbsp;&nbsp;&nbsp; I've been working with the Internet Explorer team on short term and long<br>&nbsp;&nbsp;&nbsp; term solutions. The latest patch (MS05-038) will &quot;killbit&quot; a number of<br>&nbsp;&nbsp;&nbsp; objects that were found to have issues when loaded in IE. These killbits
<br>&nbsp;&nbsp;&nbsp; prevent exploits from loading these objects and abusing this vulnerability.</p>
<p>&nbsp;&nbsp;&nbsp; The latest exploit by FrSIRT targets &quot;msdss.dll&quot; with clsid <br>&nbsp;&nbsp;&nbsp; EC444CB6-3E7E-4865-B1C3-0DE72EF39B3F, which is not killbitted by ms05-038.<br>&nbsp;&nbsp;&nbsp; I was unable to reproduce the vulnerability with version 
7.10.3077.0 of the<br>&nbsp;&nbsp;&nbsp; dll; the object doesn't even crash. From what I've heard everybody else <br>&nbsp;&nbsp;&nbsp; seems to be unaffected too, so maybe it's just a local .fr thing.<br>&nbsp;&nbsp;&nbsp; Just in case, here's a .reg file you can use to killbit this control;
<br>&nbsp;&nbsp;&nbsp; Create a new .txt file, copy+paste this into it, rename it to .reg, double<br>&nbsp;&nbsp;&nbsp; click it and say &quot;yes, I want to add it to the registry.&quot;<br>&nbsp;&nbsp;&nbsp; !!! Lines may wrap, you might have to remove the extra line-breaks !!!
<br>---- cut here ----<br>Windows Registry Editor Version 5.00</p>
<p>[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{EC444CB6-3E7E-4865-B1C3-0DE72EF39B3F}]<br>&quot;Compatibility Flags&quot;=dword:00000400<br>---- cut here ----<br>&nbsp;&nbsp;&nbsp; If you want to test if it works, here's a .html file that will show you;
<br>&nbsp;&nbsp;&nbsp; Create a new .txt file, copy+paste this into it, rename it to .html, double<br>&nbsp;&nbsp;&nbsp; click and it will tell you if you are safe (the object cannot be loaded)<br>&nbsp;&nbsp;&nbsp; or if you might be vulnerable to this attack (the object can be loaded):
<br>---- cut here ---<br>&lt;OBJECT<br>&nbsp;&nbsp;&nbsp; onreadystatechange=&quot;document.write('&lt;I&gt;Possibly&lt;/I&gt; Vulnerable...');&quot;<br>&nbsp;&nbsp;&nbsp; onerror=&quot;document.write('You should be safe!');&quot;<br>&nbsp;&nbsp;&nbsp; classid=&quot;clsid:{EC444CB6-3E7E-4865-B1C3-0DE72EF39B3F}&quot;
<br>&gt;&lt;/OBJECT&gt;<br>---- cut here ---<br>&nbsp;<br>Greets:<br>&nbsp;&nbsp;&nbsp; <a href="mailto:Paul@greyhats">Paul@greyhats</a>, <a href="mailto:st0ke@milworm">st0ke@milworm</a>, 0dd, 0x4553, l33tsecurity, NGS.<br>&nbsp;<br>Anti-Greets:<br>
&nbsp;&nbsp;&nbsp; FrSIRT (I thought I was special, turns out they rip-off everybody's code!)<br>&nbsp;<br>Cheers,<br>SkyLined</p>