[NT] Internet Explorer Method Cache Location Variant Trust Leads to Script Execution
From: SecuriTeam (support_at_securiteam.com)
Date: 07/27/04
- Previous message: SecuriTeam: "[NT] Multiple Vulnerabilities in ASPRunner"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
To: list@securiteam.com Date: 27 Jul 2004 20:12:29 +0200
The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com
- - promotion
The SecuriTeam alerts list - Free, Accurate, Independent.
Get your security news from a reliable source.
http://www.securiteam.com/mailinglist.html
- - - - - - - - -
Internet Explorer Method Cache Location Variant Trust Leads to Script
Execution
------------------------------------------------------------------------
SUMMARY
Internet Explorer is "Microsoft's core browser that is a part of any
Windows operating system and is the dominant browser currently in the
world".
A condition exists in which Internet Explorer can be fooled to execute
JavaScript code in a popped-up window. The vulnerability is based on
method cache unwarranted trust when redirecting execution to a script
function with the same name.
DETAILS
Vulnerable Systems:
* Internet Explorer version 6.0.2800.1106 (even with Windows XP SP1)
Vulnerable Components
* MSHTML.DLL version 6.00.2800.1400
In an HTML page containing script that redirects a function to another
function with the same name, the later can be called without security
restrictions. An example of the issue can be easily demonstrated using the
following script code:
<script>
var var1=location.assign;
alert("Assign function of the current window:\n"+var1);
var w=window.open("about:blank","_blank");
var var2=w.location.assign;
var w=alert("Assign function of the new window:\n"+var2);
w.close();
</script>
You should get two alerts describing the assign() function as being:
function assign(){
[Native code]
}
Notice how both functions appear to be same. Although it might seem that
since their names are identical, IE marks the function assign() as safe.
However, that is not enough as each assign() function has a unique ID that
distinguishes between them, instead of just using their toString()
methods. Instead, IE tries to determine whether the function call is safe
based on the level of trust it has to the object that the method resides
on.
It appears then that IE trusts objects in such a manner that would enable
a complete range of method caching vulnerabilities by circumventing the
object security check. This is possible because IE does not take into
account cross-window function calls, which is the vessel used to
circumvent the trust checks performed by IE. This can be demonstrated by
creating a cached reference to the location.assign method from the first
window on the second windows location object, not just on the
location.assign method but also on the location.replace method and the
non-existent location.whatever property. Thor Larholm's demo of this can
be found at
<http://www.pivx.com/research/2004/7/PaulsimilarMethodNameRedirection/test2.html> http://www.pivx.com/research/2004/7/PaulsimilarMethodNameRedirection/test2.html.
As Thor Larholm pointed out, it isn't a problem of similar method name
redirection, but a problem with the location variant itself. A new proof
of concept HTML page was constructed and can be found at
<http://freehost07.websamba.com/greyhats/evilchild.htm>
http://freehost07.websamba.com/greyhats/evilchild.htm.
EvilChild creates a child pop-up in a new window. It then redirects the
page. As the page is loading, the pop-up is shown and saves the reference
of parent.window.open to location.cache. As soon as the evil child pop-up
cannot access the parent.document, an error handler is fired calling
parent.window.open to load JavaScript into the main window.
When JavaScript code can be executed by a malicious HTML page on the
client side, the variety of attack possibilities is staggering.
Workaround
Since the vulnerability can be used via any script function call, the only
viable option for now is to completely disable scripting in Internet
Explorer, or switch to another browser.
ADDITIONAL INFORMATION
The information has been provided by <mailto:paul@greyhats.cjb.net> Paul.
========================================
This bulletin is sent to members of the SecuriTeam mailing list.
To unsubscribe from the list, send mail with an empty subject line and body to: list-unsubscribe@securiteam.com
In order to subscribe to the mailing list, simply forward this email to: list-subscribe@securiteam.com
====================
====================
DISCLAIMER:
The information in this bulletin is provided "AS IS" without warranty of any kind.
In no event shall we be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages.
- Previous message: SecuriTeam: "[NT] Multiple Vulnerabilities in ASPRunner"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
Relevant Pages
- SecurityFocus Microsoft Newsletter #91
... SecurityFocus Microsoft Newsletter #91 ... Multiple Bugzilla Security Vulnerabilities
... Geeklog pid CGI Variable SQL Injection Vulnerability ... Geeklog Calendar
Event Form Script Injection Vulnerability ... (Focus-Microsoft) - [NT] Vulnerability in ASP.NET 2.0 Allows Information Disclosure (MS06-056)
... Get your security news from a reliable source. ... Vulnerability in ASP.NET
2.0 Allows Information Disclosure ... side script in the user's browser. ... Microsoft
Windows Server 2003 for Itanium-based Systems or Windows ... (Securiteam) - Re: [Full-disclosure] SecNiche : Microsoft Internet Explorer Pop up Blocker Bypassing and Dos Vu
... I wonder why we can't find Aditya K Sood in any of the security list even though he
has made so many public disclosures. ... Subject: SecNiche: Microsoft Internet Explorer Pop up
Blocker Bypassing and Dos Vulnerability ... I don't see anything in the script that
can bypass zone security and run ... drawn conclusion that the script can execute from internet
zone. ... (Full-Disclosure) - [NT] Multiple Vulnerabilities in ASPapp Products
... Get your security news from a reliable source. ... This vulnerability
allows a malicious user set himself any user level he ... "msg" with a value of any script
you would like to be run. ... An injection vulnerability exists in forums.asp. ...
(Securiteam) - [NEWS] Scripting Vulnerabilities in Indian Email Providers
... Get your security news from a reliable source. ... these services because of
certain flaws in their anti-scripting filters. ... Second vulnerability: ...
This service is also susceptible to a script insertion method previously ... (Securiteam)