Thor Larholm, PivX, security advisory TL#003 ------------------------------------- By Thor Larholm, Denmark 10 July 2002 HTML format: http://www.PivX.com/larholm/adv/TL003/ Topic: IE allows universal Cross Domain Scripting. Discovery date: 25 June 2002. Severity: High Affected applications: ---------------------- Any application that hosts the WebBrowser control. Some of these are: Microsoft Internet Explorer Microsoft Outlook Microsoft Outlook Express Impact: ------- Elevating privileges, arbitrary command execution, local file reading, stealing arbitrary cookies, etc. Authors: -------- Patrick Zumstein and Thor Larholm. Introduction: ------------- One of the many elements in HTML 4 is the OBJECT element which is used to embed external objects inside a page. Such objects can be the WebBrowser control and other ActiveX controls, images, applets and more. The object property of embedded WebBrowser controls is not subject to the Cross Domain security checks that embedded HTML documents ordinarily go through, and as such it is possible to escape any sandboxing and security zone restrictions. Discussion: ----------- Any document can extend the properties exposed by the OBJECT element, and any namespace conflicts are handled by querying the object property which is a duplicate reference to the embedded document. When embedding a document from the same site (same protocol, port and host) it is possible to make a reference to the object property without circumventing any Cross Domain security checks. After having established a reference we will then change the location of the document being embedded. The location changes but the reference stays, and we now have complete access to the DOM of the foreign document. The default object being referenced by the object property in the case of text/html is the document object. The simple proof-of-concept exploit below will read the cookie from passport.com. The OBJECT element is not restricted to embedding HTML documents, but can embed objects of any type. As such, this vulnerability could be extended even further. Exploit: -------- <object id="data" data="empty.html" type="text/html"></object> <script> var ref=document.getElementById("data").object; ref.location.href = "http://www.passport.com"; setTimeout("alert(ref.cookie)",5000); </script> Solution: --------------------- Disable ActiveX, or Set "Script ActiveX controls marked safe for scripting" to Prompt or Disable ( <URL: http://www.PivX.com/tutorials/disable_activex.html> ). Tested on: ---------- IE6 Win2000, all patches and servicepacks. IE5.5 Win98, all patches and servicepacks. IE5.5 WinNT 4, all patches and servicepacks. Demonstration: -------------- I have put together some proof-of-concept examples: - Read foreign cookies - Read local (or foreign) file - Execute arbitrary commands These can be found at http://www.PivX.com/larholm/adv/TL003/ Vendor status: -------------- Microsoft was notified 25 June 2002. Mitigating factors: ------------------- Outlook and OE are not directly affected if they run in the Restricted zone. Postscript: ----------- On June 25, Patrick Zumstein notified Thor Larholm, Georgi Guninski and PacketStormSecurity about a possible vulnerability. In working together, Patrick and Thor quickly outlined the culprit and prepared this advisory, after which Microsoft were notified immediately. Since this is possibly very publicly known by now I have decided to release this advisory after only 2 weeks times, so that system administrators and end users may possibly apply the provided workaround to temporarily secure themselves until a proper patch has been made. Regards Thor Larholm, Security Researcher PivX Solutions, LLC Unpatched IE security holes - 19 and counting http://www.PivX.com/larholm/unpatched/ Are You Secure? http://www.PivX.com