// back

Microsoft Internet Explorer JavaScript setExpression Heap Corruption Vulnerability



Internet Explorer is a graphical web browser developed by Microsoft Corp. and included as part of Microsoft Windows since 1995. The setExpression method is commonly used to assign a JavaScript expression to a CSS or DHTML object within a web page. For more information, visit the following URLs.




Remote exploitation of a heap corruption vulnerability in Microsoft Corp.'s Internet Explorer web browser allows attackers to execute arbitrary code in the context of the current user.

The vulnerability lies in the JavaScript setExpression method, which is implemented in mshtml.dll. When malformed parameters are supplied, memory can be corrupted in a way that results in Internet Explorer accessing a previously deleted object. By creating a specially crafted web page, it is possible for an attacker to control the contents of the memory pointed to by the released object. This allows an attacker to execute arbitrary code.


Exploitation of this vulnerability would allow an attacker to execute arbitrary code in the context of the user running Internet Explorer.

In order to exploit this vulnerability, an attacker must persuade a user to render a malicious web page using Internet Explorer. This is usually accomplished by providing a link to the malicious page in an e-mail or instant message.

On Windows Vista, Internet Explorer 7 runs in "Protected Mode". Since "Protected Mode" processes web pages with lower privileges than a normal user, it lessens the impact of this vulnerability. However, it does not prevent arbitrary code execution on the affected system.


As of April 5th, 2007, iDefense testing shows that Internet Explorer 6.0 and Internet Explorer 7.0 with all available security patches are vulnerable. Older versions of Internet Explorer may also be vulnerable.


Disable Active Scripting (JavaScript) to prevent exploitation of this issue. Applying this workaround will prevent proper rendering of web sites that rely on JavaScript.


Microsoft has addressed this vulnerability within Microsoft Security Bulletin MS07-069. For more information, consult their bulletin at the following URL.



The Common Vulnerabilities and Exposures (CVE) project has assigned the name CVE-2007-3902 to this issue. This is a candidate for inclusion in the CVE list (http://cve.mitre.org/), which standardizes names for security problems.


05/08/2007 Initial vendor notification
05/08/2007 Initial vendor response
12/11/2007 Coordinated public disclosure


This vulnerability was reported to iDefense by Peter Vreugdenhil (security@petervreugdenhil.nl).

Get paid for vulnerability research

Free tools, research and upcoming events


Copyright © 2007 Verisign, Inc.

Permission is granted for the redistribution of this alert electronically. It may not be edited in any way without the express written consent of iDefense. If you wish to reprint the whole or any part of this alert in any other medium other than electronically, please e-mail customer service for permission.

Disclaimer: The information in the advisory is believed to be accurate at the time of publishing based on currently available information. Use of the information constitutes acceptance for use in an AS IS condition. There are no warranties with regard to this information. Neither the author nor the publisher accepts any liability for any direct, indirect, or consequential loss or damage arising from use of, or reliance on, this information.