Lucene search

K
securityvulnsSecurityvulnsSECURITYVULNS:DOC:24882
HistoryOct 13, 2010 - 12:00 a.m.

Microsoft Security Bulletin MS10-077 - Critical Vulnerability in .NET Framework Could Allow Remote Code Execution (2160841) Published: October 12, 2010

2010-10-1300:00:00
vulners.com
29

Microsoft Security Bulletin MS10-077 - Critical
Vulnerability in .NET Framework Could Allow Remote Code Execution (2160841)
Published: October 12, 2010

Version: 1.0
General Information
Executive Summary

This security update resolves a privately reported vulnerability in Microsoft .NET Framework. The vulnerability could allow remote code execution on a client system if a user views a specially crafted Web page using a Web browser that can run XAML Browser Applications (XBAPs). Users whose accounts are configured to have fewer user rights on the system could be less impacted than users who operate with administrative user rights. The vulnerability could also allow remote code execution on a server system running IIS, if that server allows processing ASP.NET pages and an attacker succeeds in uploading a specially crafted ASP.NET page to that server and then executes the page, as could be the case in a Web hosting scenario.

This security update is rated Critical for Microsoft .NET Framework 4.0 on supported x64-based and Itanium-based editions of Microsoft Windows. For more information, see the subsection, Affected and Non-Affected Software, in this section.

The security update addresses the vulnerability by modifying the way that the JIT compiler optimizes code. For more information about the vulnerability, see the Frequently Asked Questions (FAQ) subsection for the specific vulnerability entry under the next section, Vulnerability Information.

Recommendation. The majority of customers have automatic updating enabled and will not need to take any action because this security update will be downloaded and installed automatically. Customers who have not enabled automatic updating need to check for updates and install this update manually. For information about specific configuration options in automatic updating, see Microsoft Knowledge Base Article 294871.

For administrators and enterprise installations, or end users who want to install this security update manually, Microsoft recommends that customers apply the update at the earliest opportunity using update management software, or by checking for updates using the Microsoft Update service.

See also the section, Detection and Deployment Tools and Guidance, later in this bulletin.

Known Issues. None
Top of sectionTop of section
Affected and Non-Affected Software

The following software have been tested to determine which versions or editions are affected. Other versions or editions are either past their support life cycle or are not affected. To determine the support life cycle for your software version or edition, visit Microsoft Support Lifecycle.

Affected Software
Operating System Component Maximum Security Impact Aggregate Severity Rating Bulletins Replaced by this Update
Windows XP

Windows XP Professional x64 Edition Service Pack 2

Microsoft .NET Framework 4.0[1]

Remote Code Execution

Critical

None
Windows Server 2003

Windows Server 2003 x64 Edition Service Pack 2

Microsoft .NET Framework 4.0[1]

Remote Code Execution

Critical

None

Windows Server 2003 with SP2 for Itanium-based Systems

Microsoft .NET Framework 4.0[1]

Remote Code Execution

Critical

None
Windows Vista

Windows Vista x64 Edition Service Pack 1 and Windows Vista x64 Edition Service Pack 2

Microsoft .NET Framework 4.0[1]

Remote Code Execution

Critical

None
Windows Server 2008

Windows Server 2008 for x64-based Systems and Windows Server 2008 for x64-based Systems Service Pack 2

Microsoft .NET Framework 4.0**[1]

Remote Code Execution

Critical

None

Windows Server 2008 for Itanium-based Systems and Windows Server 2008 for Itanium-based Systems Service Pack 2

Microsoft .NET Framework 4.0[1]

Remote Code Execution

Critical

None
Windows 7

Windows 7 for x64-based Systems

Microsoft .NET Framework 4.0[1]

Remote Code Execution

Critical

None
Windows Server 2008 R2

Windows Server 2008 R2 for x64-based Systems

Microsoft .NET Framework 4.0**[1]

Remote Code Execution

Critical

None

Windows Server 2008 R2 for Itanium-based Systems

Microsoft .NET Framework 4.0[1]

Remote Code Execution

Critical

None

**Server Core installation not affected. The vulnerabilities addressed by this update do not affect supported editions of Windows Server 2008 or Windows Server 2008 R2 as indicated, when installed using the Server Core installation option. For more information on this installation option, see the TechNet articles, Managing a Server Core Installation and Servicing a Server Core Installation. Note that the Server Core installation option does not apply to certain editions of Windows Server 2008 and Windows Server 2008 R2; see Compare Server Core Installation Options.

[1].NET Framework 4.0 and .NET Framework 4.0 Client Profile affected. The .NET Framework version 4 redistributable packages are available in two profiles: .NET Framework 4.0 and .NET Framework 4.0 Client Profile. The .NET Framework 4.0 Client Profile is a subset of the .NET Framework 4.0. The vulnerability addressed in this update affects both the .NET Framework 4.0 and the .NET Framework 4.0 Client Profile. For more information, see: Installing the .NET Framework.

Non-Affected Software
Microsoft .NET Framework

Microsoft .NET Framework 1.0 Service Pack 3

Microsoft .NET Framework 1.1 Service Pack 1

Microsoft .NET Framework 2.0 Service Pack 1

Microsoft .NET Framework 2.0 Service Pack 2

Microsoft .NET Framework 3.0

Microsoft .NET Framework 3.0 Service Pack 1

Microsoft .NET Framework 3.0 Service Pack 2

Microsoft .NET Framework 3.5

Microsoft .NET Framework 3.5 Service Pack 1

Microsoft .NET Framework 3.5.1
Operating System Component
Microsoft .NET Framework 4.0

Windows XP Service Pack 3

Microsoft .NET Framework 4.0

Windows Server 2003 Service Pack 2

Microsoft .NET Framework 4.0

Windows Vista Service Pack 1 and Windows Vista Service Pack 2

Microsoft .NET Framework 4.0

Windows Server 2008 for 32-bit Systems and Windows Server 2008 for 32-bit Systems Service Pack 2

Microsoft .NET Framework 4.0

Windows 7 for 32-bit Systems

Microsoft .NET Framework 4.0
Top of sectionTop of section

Frequently Asked Questions (FAQ) Related to This Security Update

Where are the file information details?
Refer to the reference tables in the Security Update Deployment section for the location of the file information details.

How are the Windows 7 Service Pack 1 Beta and Windows Server 2008 R2 Service Pack 1 Beta releases affected by these vulnerabilities?
Windows 7 Service Pack 1 Beta and Windows Server 2008 R2 Service Pack 1 Beta are affected by the vulnerabilities described in this bulletin. Customers running these beta releases are encouraged to download and apply the update to their systems. Security updates are available from Microsoft Update and Windows Update. The security update is also available for download from the Microsoft Download Center.

How do I determine which version of the Microsoft .NET Framework is installed?
You can install and run multiple versions of the .NET Framework on a system, and you can install the versions in any order. There are several ways to determine which versions of the .NET Framework are currently installed. For more information, please see Microsoft Knowledge Base Article 318785.

How is this security update related to MS10-070?
The vulnerability addressed in this security bulletin is entirely different from and not related to the vulnerability described in MS10-070, even though both security bulletins address vulnerabilities in the .NET Framework. Customers will need to install both security updates, as applicable, to address both vulnerabilities.

What is the difference between .NET Framework 4.0 and .NET Framework 4.0 Client Profile?
The .NET Framework version 4 redistributable packages are available in two profiles: .NET Framework 4.0 and .NET Framework 4.0 Client Profile. The .NET Framework 4.0 Client Profile is a subset of the .NET Framework 4.0 profile that is optimized for client applications. It provides functionality for most client applications, including Windows Presentation Foundation (WPF), Windows Forms, Windows Communication Foundation (WCF), and ClickOnce features. This enables faster deployment and a smaller install package for applications that target the .NET Framework 4.0 Client Profile. For more information, see .NET Framework Client Profile.

I am using an older release of the software discussed in this security bulletin. What should I do?
The affected software listed in this bulletin have been tested to determine which releases are affected. Other releases are past their support life cycle. For more information about the product lifecycle, visit the Microsoft Support Lifecycle Web site.

It should be a priority for customers who have older releases of the software to migrate to supported releases to prevent potential exposure to vulnerabilities. To determine the support lifecycle for your software release, see Select a Product for Lifecycle Information. For more information about service packs for these software releases, see Lifecycle Supported Service Packs.

Customers who require custom support for older software must contact their Microsoft account team representative, their Technical Account Manager, or the appropriate Microsoft partner representative for custom support options. Customers without an Alliance, Premier, or Authorized Contract can contact their local Microsoft sales office. For contact information, visit the Microsoft Worldwide Information Web site, select the country in the Contact Information list, and then click Go to see a list of telephone numbers. When you call, ask to speak with the local Premier Support sales manager. For more information, see the Microsoft Support Lifecycle Policy FAQ.
Top of sectionTop of section
Vulnerability Information

Severity Ratings and Vulnerability Identifiers

The following severity ratings assume the potential maximum impact of the vulnerability. For information regarding the likelihood, within 30 days of this security bulletin's release, of the exploitability of the vulnerability in relation to its severity rating and security impact, please see the Exploitability Index in the October bulletin summary. For more information, see Microsoft Exploitability Index.
Vulnerability Severity Rating and Maximum Security Impact by Affected Software
Affected Software .NET Framework x64 JIT Compiler Vulnerability - CVE-2010-3228 Aggregate Severity Rating
Microsoft .NET Framework 4.0

Microsoft .NET Framework 4.0 on Windows XP Professional x64 Edition Service Pack 2

Critical
Remote Code Execution

Critical

Microsoft .NET Framework 4.0 on Windows Server 2003 x64 Edition Service Pack 2

Critical
Remote Code Execution

Critical

Microsoft .NET Framework 4.0 on Windows Server 2003 with SP2 for Itanium-based Systems

Critical
Remote Code Execution

Critical

Microsoft .NET Framework 4.0 on Windows Vista x64 Edition Service Pack 1 and Windows Vista x64 Edition Service Pack 2

Critical
Remote Code Execution

Critical

Microsoft .NET Framework 4.0 on Windows Server 2008 for x64-based Systems and Windows Server 2008 for x64-based Systems Service Pack 2**

Critical
Remote Code Execution

Critical

Microsoft .NET Framework 4.0 on Windows Server 2008 for Itanium-based Systems and Windows Server 2008 for Itanium-based Systems Service Pack 2

Critical
Remote Code Execution

Critical

Microsoft .NET Framework 4.0 on Windows 7 for x64-based Systems

Critical
Remote Code Execution

Critical

Microsoft .NET Framework 4.0 on Windows Server 2008 R2 for x64-based Systems**

Critical
Remote Code Execution

Critical

Microsoft .NET Framework 4.0 on Windows Server 2008 R2 for Itanium-based Systems

Critical
Remote Code Execution

Critical

**Server Core installation not affected. The vulnerabilities addressed by this update do not affect supported editions of Windows Server 2008 or Windows Server 2008 R2 as indicated, when installed using the Server Core installation option. For more information on this installation option, see the TechNet articles, Managing a Server Core Installation and Servicing a Server Core Installation. Note that the Server Core installation option does not apply to certain editions of Windows Server 2008 and Windows Server 2008 R2; see Compare Server Core Installation Options.
Top of sectionTop of section

.NET Framework x64 JIT Compiler Vulnerability - CVE-2010-3228

A remote code execution vulnerability exists in the Microsoft .NET Framework that can allow a specially crafted Microsoft .NET application to access memory in an unsafe manner, leading to arbitrary unmanaged code execution. This vulnerability only affects the x64 and Itanium architectures.

To view this vulnerability as a standard entry in the Common Vulnerabilities and Exposures list, see CVE-2010-3228.

Mitigating Factors for .NET Framework x64 JIT Compiler Vulnerability - CVE-2010-3228

Mitigation refers to a setting, common configuration, or general best-practice, existing in a default state, that could reduce the severity of exploitation of a vulnerability. The following mitigating factors may be helpful in your situation:

By default, Internet Explorer on Windows Server 2003 and Windows Server 2008 runs in a restricted mode that is known as Enhanced Security Configuration. This mode mitigates this vulnerability only in a Web-based attack scenario. See the FAQ section of this vulnerability for more information about Internet Explorer Enhanced Security Configuration.

An attacker who successfully exploited this vulnerability could gain the same user rights as the local user or the user account of ASP.NET. Users or accounts that are configured to have fewer user rights on the system could be less impacted than users or accounts that operate with administrative user rights.

In a Web-based attack scenario, an attacker could host a Web site that contains a Web page that is used to exploit this vulnerability. In addition, compromised Web sites and Web sites that accept or host user-provided content or advertisements could contain specially crafted content that could exploit this vulnerability. In all cases, however, an attacker would have no way to force users to visit these Web sites. Instead, an attacker would have to convince users to visit the Web site, typically by getting them to click a link in an e-mail or Instant Messenger message that takes users to the attacker's Web site.

Internet Explorer 8 disables the Microsoft .NET MIME Filter in the Internet Zone. This feature of Internet Explorer 8 makes successful exploitation of this vulnerability more difficult in Internet Explorer 8 by blocking a known technique for bypassing ASLR and DEP protection. This does not make it impossible to exploit this vulnerability in Internet Explorer 8, but it does make it more difficult for malicious Web sites to reliably exploit it.

In a Web-hosting scenario, an attacker must have permission to upload arbitrary ASP.NET pages to a Web site and ASP.NET must be installed on that Web server. In default configuration, an anonymous user cannot upload and run Microsoft .NET code on an Internet Information Server (IIS).

Microsoft Silverlight is not affected by this vulnerability.

32-bit Microsoft Windows editions are not affected by this vulnerability.
Top of sectionTop of section

Workarounds for .NET Framework x64 JIT Compiler Vulnerability - CVE-2010-3228

Workaround refers to a setting or configuration change that does not correct the underlying vulnerability but would help block known attack vectors before you apply the update. Microsoft has tested the following workarounds and states in the discussion whether a workaround reduces functionality:

Disable partially trusted Microsoft .NET applications

To disable all Microsoft .NET applications running at partial trust, including XAML browser applications (XBAPs) and Microsoft .NET applications located on the network, run the following commands from an elevated command prompt:

caspol –pp off
caspol –m –resetlockdown
caspol –pp on

Note You must be logged in as administrator or have administrative credentials to complete this workaround.

Impact of workaround. Some Microsoft .NET applications will not run.

How to undo the workaround.

To reset the Microsoft .NET security policies to the defaults, run the following commands from an elevated command prompt:

caspol –pp off
caspol –m –reset
caspol –pp on

Note You must be logged in as administrator or have administrative credentials to undo this workaround.

Disable XAML browser applications in Internet Explorer

To help protect against this vulnerability, change your settings to prompt before running XAML browser applications (XBAPs) or to disable XBAPs in the Internet and Local intranet security zones as follows:

In Internet Explorer, click the Tools menu and then select Internet Options.

Click the Security tab, click Internet, and then click Custom level.

Under Settings, for Loose XAML, click Prompt or Disable, and then click OK. Repeat steps 2 and 3 for XAML browser applications and XPS documents.

On the Security tab, click Custom level. Under .NET Framework-reliant components, set Run components not signed with Authenticode to either Prompt or Disable, and then click OK. Repeat this step for Run components signed with Authenticode, and then click OK.

Click Local intranet, and then click Custom Level. Repeat steps 3 and 4. If you are prompted to confirm that you want to change these settings, click Yes. Click OK to return to Internet Explorer.

Impact of workaround. Microsoft .NET code will not run in Internet Explorer or will not run without prompting. Disabling Microsoft .NET applications and components in the Internet and Local intranet security zones may cause some Web sites to work incorrectly. If you have difficulty using a Web site after you change this setting and you are sure the site is safe to use, you can add that site to your list of trusted sites. This will allow the site to work correctly.

Add sites that you trust to the Internet Explorer Trusted sites zone

After you set Internet Explorer to require a prompt before it runs ActiveX controls and Active Scripting in the Internet zone and in the Local intranet zone, you can add sites that you trust to the Internet Explorer Trusted sites zone. This will allow you to continue to use trusted Web sites exactly as you do today, while helping to protect you from this attack on untrusted sites. We recommend that you add only sites that you trust to the Trusted sites zone.

To do this, follow these steps:

In Internet Explorer, click Tools, click Internet Options, and then click the Security tab.

In the Select a Web content zone to specify its current security settings box, click Trusted Sites, and then click Sites.

If you want to add sites that do not require an encrypted channel, click to clear the Require server verification (https:) for all sites in this zone check box.

In the Add this Web site to the zone box, type the URL of a site that you trust, and then click Add.

Repeat these steps for each site that you want to add to the zone.

Click OK two times to accept the changes and return to Internet Explorer.

Note Add any sites that you trust not to take malicious action on your system. Two in particular that you may want to add are *.windowsupdate.microsoft.com and *.update.microsoft.com. These are the sites that will host the update, and it requires an ActiveX Control to install the update.

How to undo the workaround.

In Internet Explorer, click the Tools menu, and then select Internet Options.

Click the Security tab, click Reset all zones to default level, and then click OK.
Top of sectionTop of section

FAQ for .NET Framework x64 JIT Compiler Vulnerability - CVE-2010-3228

What is the scope of the vulnerability?
This vulnerability is a remote code execution vulnerability in either the context of the currently logged-on user, or in the context of the service account associated with an application pool identity.

What causes the vulnerability?
This vulnerability results from the manner in which the JIT compiler optimizes code based on an incorrect assessment, which can lead to memory corruption and, as a result, execution of arbitrary, unmanaged code.

What is the .NET Framework JIT compiler?
The .NET Framework JIT compiler is a .NET Framework runtime component which compiles Microsoft Intermediate Language (MSIL) against the Common Language Runtime (CLR) on demand at application run time, when the contents of an assembly are loaded and executed.

What is the CLR?
The Microsoft .NET Framework provides a run-time environment called the Common Language Runtime (CLR), which runs the code and provides services that make the development process easier. For more information about the CLR, see the MSDN article, Common Language Runtime Overview.

What is the MSIL?
The Microsoft Intermediate Language (MSIL) is a CPU-independent instruction set that is generated by the Microsoft .NET Framework compilers and consumed by the .NET Common Language Runtime (CLR). Before MSIL can be executed, it must be converted to native, CPU-specific code by the .NET CLR.

What might an attacker use the vulnerability to do?
In the Web browsing scenario, an attacker who successfully exploited this vulnerability could obtain the same permissions as the currently logged-on user. If a user is logged on with administrative user rights, an attacker could take complete control of the affected system. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. Users whose accounts are configured to have fewer user rights on the system could be less impacted than users who operate with administrative user rights.

In the Web hosting scenario, an attacker who successfully exploits this vulnerability could obtain the same permissions as the service account associated with the application pool identity of the application pool in which a Microsoft .NET application is running. Depending on application pool isolation configuration and permissions granted to the service account, an attacker might be able to take control over other application pools on the Web server or be able to take complete control of the affected system. For more information about application pool identities and configuration, see the TechNet article, Configure Application Pool Identity.

How could an attacker exploit the vulnerability?
There are two scenarios possible for exploitation of this vulnerability: a Web browsing scenario and a Web hosting scenario. These scenarios are described as follows:

Web browsing scenario
An attacker could host a specially crafted Web site that contains a specially crafted XBAP (XAML browser application) that could exploit this vulnerability and then convince a user to view the Web site. The attacker could also take advantage of compromised Web sites and Web sites that accept or host user-provided content or advertisements. These Web sites could contain specially crafted content that could exploit this vulnerability. In all cases, however, an attacker would have no way to force users to visit these Web sites. Instead, an attacker would have to convince users to visit the Web site, typically by getting them to click a link in an e-mail message or in an Instant Messenger message that takes users to the attacker's Web site. It could also be possible to display specially crafted Web content by using banner advertisements or by using other methods to deliver Web content to affected systems.

Web hosting scenario
If a Web hosting environment allows users to upload custom ASP.NET applications, an attacker could upload a malicious ASP.NET application that uses this vulnerability to break out of the sandbox used to prevent ASP.NET code from performing harmful actions on the server system.

What is an XBAP?
An XAML browser application (XBAP) combines features of both a Web application and a rich-client application. Like Web applications, XBAPs can be published to a Web server and launched from Internet Explorer. Like rich-client applications, XBAPs can take advantage of the capabilities of Windows Presentation Foundation (WPF). For more information about XBAPs, see MSDN article, Windows Presentation Foundation XAML Browser Applications Overview.

What systems are primarily at risk from the vulnerability?
There are two types of systems at risk from this vulnerability, described as follows: systems that are using the Web browsing scenario, and systems that are using the Web hosting scenario.

Web browsing scenario
Successful exploitation of this vulnerability requires that a user is logged on and is visiting Web sites using a Web browser capable of instantiating XBAPs. Therefore, any systems where a Web browser is used frequently, such as workstations or terminal servers, are at the most risk from this vulnerability. Servers could be at more risk if administrators allow users to browse and read e-mail on servers. However, best practices strongly discourage allowing this.

Web hosting scenario
Web hosting sites that allow users to upload custom ASP.NET applications are at increased risk.

I am running Internet Explorer for Windows Server 2003 or Windows Server 2008. Does this mitigate this vulnerability?
Yes and no. For the Web browsing attack scenario, running Internet Explorer on Windows Server 2003 or Windows Server 2008 mitigates the vulnerability, but for the Web hosting attack scenario, these platforms do not mitigate the vulnerability. By default, Internet Explorer on Windows Server 2003 and Windows Server 2008 runs in a restricted mode that is known as Enhanced Security Configuration. Enhanced Security Configuration is a group of preconfigured settings in Internet Explorer that can reduce the likelihood of a user or administrator downloading and running specially crafted Web content on a server. This is a mitigating factor for Web sites that you have not added to the Internet Explorer Trusted sites zone. See also Managing Internet Explorer Enhanced Security Configuration.

What does the update do?
This update addresses the vulnerability by modifying the way in which the JIT compiler optimizes code.

When this security bulletin was issued, had this vulnerability been publicly disclosed?
No. Microsoft received information about this vulnerability through coordinated vulnerability disclosure.

When this security bulletin was issued, had Microsoft received any reports that this vulnerability was being exploited?
No. Microsoft had not received any information to indicate that this vulnerability had been publicly used to attack customers when this security bulletin was originally issued.

Other Information
Acknowledgments

Microsoft thanks the following for working with us to help protect customers:

Jeroen Frijters of Sumatra for reporting the .NET Framework x64 JIT Compiler Vulnerability (CVE-2010-3228)

Microsoft Active Protections Program (MAPP)

To improve security protections for customers, Microsoft provides vulnerability information to major security software providers in advance of each monthly security update release. Security software providers can then use this vulnerability information to provide updated protections to customers via their security software or devices, such as antivirus, network-based intrusion detection systems, or host-based intrusion prevention systems. To determine whether active protections are available from security software providers, please visit the active protections Web sites provided by program partners, listed in Microsoft Active Protections Program (MAPP) Partners.

Support

Customers in the U.S. and Canada can receive technical support from Security Support or 1-866-PCSAFETY. There is no charge for support calls that are associated with security updates. For more information about available support options, see Microsoft Help and Support.

International customers can receive support from their local Microsoft subsidiaries. There is no charge for support that is associated with security updates. For more information about how to contact Microsoft for support issues, visit the International Support Web site.

Disclaimer

The information provided in the Microsoft Knowledge Base is provided "as is" without warranty of any kind. Microsoft disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. In no event shall Microsoft Corporation or its suppliers be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages, even if Microsoft Corporation or its suppliers have been advised of the possibility of such damages. Some states do not allow the exclusion or limitation of liability for consequential or incidental damages so the foregoing limitation may not apply.

Revisions

V1.0 (October 12, 2010): Bulletin published.

Related for SECURITYVULNS:DOC:24882