[VulnWatch] IE allows universal Cross Domain Scripting (TL#003)

From: Thor Larholm (thor@pivx.com)
Date: 07/11/02


From: "Thor Larholm" <thor@pivx.com>
To: <vulnwatch@vulnwatch.org>
Date: Thu, 11 Jul 2002 17:19:40 +0200

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



Relevant Pages

  • IE allows universal Cross Domain Scripting (TL#003)
    ... One of the many elements in HTML 4 is the OBJECT element which is used to ... The object property of embedded WebBrowser controls is not subject to the ... When embedding a document from the same site ... Set "Script ActiveX controls marked safe for scripting" to Prompt or Disable ...
    (Bugtraq)
  • Re: Help! - Controlling Embedded Video
    ... I have an embedded video in an HTML page with no controls (but the user ... please acquire a handle to the player object ... Looking at your embedding code below, it's about 10 years out of date ...
    (microsoft.public.windowsmedia.player)
  • Re: If Statement in HTML
    ... discovered code-behind, web controls, and what are called user controls, ... The sooner you learn you are no longer scripting the sooner you ... HTML elements are usually referred to as HTML controls in ASP.NET ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: create html from flat file
    ... I want control over the html pages ie ... I was thinking maybe the flat file could use xml. ... a template file to indicate the controls that should appear on each ... create, html, xml, dynamic, template etc results in million+ hits. ...
    (comp.lang.php)
  • Re: create html from flat file
    ... I want control over the html pages ie ... I was thinking maybe the flat file could use xml. ... a template file to indicate the controls that should appear on each ... create, html, xml, dynamic, template etc results in million+ hits. ...
    (comp.lang.php)