Microsoft Security Bulletin MS14-059 - Important

Vulnerability in ASP.NET MVC Could Allow Security Feature Bypass (2990942)

Published: October 14, 2014

Version: 1.0

General Information

Executive Summary

This security update resolves a publicly disclosed vulnerability in ASP.NET MVC. The vulnerability could allow security feature bypass if an attacker convinces a user to click a specially crafted link or to visit a webpage that contains specially crafted content designed to exploit the vulnerability. In a web-based attack scenario, an attacker could host a specially crafted website that is designed to exploit the vulnerability through a web browser, and then convince a user to view the website. The attacker could also take advantage of compromised websites and websites that accept or host user-provided content or advertisements. These websites could contain specially crafted content that could exploit the vulnerability. In all cases, however, an attacker would have no way to force users to view the attacker-controlled content. Instead, an attacker would have to convince users to take action, typically by getting them to click a link in an email message or in an Instant Messenger message that takes them to the attacker's website, or by getting them to open an attachment sent through email.

This security update is rated Important for ASP.NET MVC 2, ASP.NET MVC 3, ASP.NET MVC 4, ASP.NET MVC 5, and APS.NET MVC 5.1. For more information, see the Affected Software section of this bulletin.

The security update addresses the vulnerability by correcting how ASP.NET MVC handles the encoding of input. For more information about the vulnerability, see the Frequently Asked Questions (FAQ) subsection for the specific vulnerability later in this bulletin.

Recommendation. Microsoft recommends that customers install this security update at the earliest opportunity. In certain cases, customers with automatic updating enabled will not need to take any action because this security update will be downloaded and installed automatically. The update will be offered to systems with automatic updating enabled if either of the following two criteria are met:

  • MVC 2.0, MVC 3.0, or MVC 4.0 is installed, or
  • The system is running Microsoft .NET Framework 4.5.1 and an application with the affected component (System.Web.Mvc.dll for ASP.NET MVC 2.0, 3.0, 4.0, 5.0, and 5.1) has been previously loaded

Customers with automatic updating disabled whose systems meet either of the criteria can also obtain the update by checking for updates using the Microsoft Update service. Customers whose systems do not meet either criteria (or customers who are unsure if this is the case), should download and install the update manually using the Microsoft Download Center links provided in the Affected Software table of this bulletin. For information about specific configuration options in automatic updating, see Microsoft Knowledge Base Article 294871. For customers who do not have automatic updating enabled, the steps in Turn automatic updating on or off can be used to enable automatic updating.

Customers who are running MVC 3.0, MVC 4.0, MVC 5.0, or MVC 5.1 also have the option of manually deploying the updated NuGet package, as detailed in the Security Update Deployment section of this bulletin. Note that customers without control of their server who need to patch their application will need to redeploy their application after downloading and installing the updated NuGet package. For more information on .NET NuGet servicing support, please see .NET 4.5.1 Supports Microsoft Security Updates for .NET NuGet Libraries.

Knowledge Base Article

  • Knowledge Base Article: 2990942
  • File Information: Yes
  • SHA1/SHA2 hashes: Yes
  • Known issues: None

 

Affected Software

The following software versions or editions are affected. Versions or editions that are not listed are either past their support life cycle or are not affected. To determine the support life cycle for your software version or edition, see ASP.NET Support Lifecycle Policies.

Affected Software 

Developer Tools Maximum Security Impact Aggregate Severity Rating Updates Replaced
ASP.NET MVC 2.0\ (2993939) Security Feature Bypass Important None
ASP.NET MVC 3.0\ (2993937) Security Feature Bypass Important None
ASP.NET MVC 4.0\ (2993928) Security Feature Bypass Important None
ASP.NET MVC 5.0\ (2992080) Security Feature Bypass Important None
ASP.NET MVC 5.1\ (2994397) Security Feature Bypass Important None

 

Update FAQ

What is ASP.NET MVC?
ASP.NET MVC (Model View Controller) is a patterns-based toolset for building dynamic websites that enables a clean separation of concerns and that gives customers full control over markup for enjoyable, agile development. ASP.NET MVC includes many features that enable fast, TDD-friendly development for creating sophisticated applications that use the latest web standards. For more information, see Learn About ASP.NET MVC.

Who will be offered the update via automatic updating?
The update will be offered to systems with automatic updating enabled if either of the following two criteria are met:

  • MVC 2.0, MVC 3.0, or MVC 4.0 is installed, or
  • The system is running Microsoft .NET Framework 4.5.1 and an application with the affected component (System.Web.Mvc.dll for ASP.NET MVC 2.0, 3.0, 4.0, 5.0, and 5.1) has been previously loaded

Customers with automatic updating disabled whose systems meet either of the criteria can also obtain the update by checking for updates using the Microsoft Update service. Customers whose systems do not meet either criteria (or customers who are unsure if this is the case), should download and install the update manually using the Microsoft Download Center links provided in the Affected Software table of this bulletin. For information about specific configuration options in automatic updating, see Microsoft Knowledge Base Article 294871. For customers who do not have automatic updating enabled, the steps in Turn automatic updating on or off can be used to enable automatic updating.

Customers who are running MVC 3.0, MVC 4.0, MVC 5.0, or MVC 5.1 also have the option of manually deploying the updated NuGet package, as detailed in the Security Update Deployment section of this bulletin. Note that customers without control of their server who need to patch their application will need to redeploy their application after downloading and installing the updated NuGet package. For more information on .NET NuGet servicing support, please see .NET 4.5.1 Supports Microsoft Security Updates for .NET NuGet Libraries.

How do I determine which version of ASP.NET MVC is installed on my system?
For MVC 4.0, MVC 5.0, or MVC 5.1 you should have deployed the affected binary (System.Web.MVC.dll) with your application. Check your application’s bin folder for the version of the binary. For MVC 2.0, MVC 3.0, or MVC 4.0, refer to the Add or Remove Programs control panel item for the version of MVC installed.

Add/Remove Programs Names
Microsoft ASP.NET MVC 2
Microsoft ASP.NET MVC 3
Microsoft ASP.NET MVC 4 Runtime

Do I have to enable Microsoft Update on my computer/server to get this update?
No. If you do not want to enable Microsoft Update on your system, you can either download the update directly from the Microsoft Download Center (see Knowledge Base Article: 2990942)) or you can update your NuGet packages to the secure version (see the Security Update Deployment section of this bulletin) and then redeploy your application to the server.

What does the update do to my system and how is my MVC application affected?  
The MSI update installs the fixed assembly (System.Web.Mvc.dll) in the GAC. This way, vulnerable versions of the assembly (System.Web.Mvc.dll) that were deployed with applications running on the server are overwritten by the version in the GAC, which will be the secure version.

For MVC 3.0 and MVC 4.0, it is possible to install the full product on the server in which the vulnerable version of System.Web.Mvc.dll is installed in the GAC. To account for this issue, the assembly version has been incremented in the fixed version and an accompanying publisher’s policy assembly is also installed to redirect previous versions of the assembly that were deployed with applications. 

Do I need to be concerned about this update adversely impacting website functionality?
No. This update does not adversely impact website functionality. However, in rare circumstances where a developer has used the Affect function and manually encoded the output in HTML, the user may see double-encoded characters. For example, “<” could display as “<”. This can be corrected by the developer by removing the manual encoding step. This issue does not affect website functionality; it is a visual artifact only.

MVC 3.0 RTM is installed on my system and after installing the update I can no longer create a new project in Visual Studio 2010, how can I correct this?
ASP.NET MVC 3.0 templates for Visual Studio 2010 rely on assemblies that are installed in the Reference Assemblies folder. Since the updated version of the assembly for MVC 3.0 is incremented, templates will no longer work. To solve this problem, install the MVC 3.0.1 tooling refresh for Visual Studio 2010.

I installed the update and now plan to redeploy my applications with a higher version of ASP.NET MVC; are there any problems with this plan of action?  
No problem. When you deploy an application with a higher version of System.Web.Mvc.dll than what is in the GAC, the version of the assembly that is deployed with the application will then take precedence.

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 has been tested to determine which releases are affected. Other releases are past their support life cycle. For more information about the ASP.NET support lifecycle, see ASP.NET Support Lifecycle Policies.

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 Service Pack Lifecycle Support Policy.

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, see the Microsoft Worldwide Information website, then select the country 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.

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 MVC XSS Vulnerability - CVE-2014-4075 Aggregate Severity Rating
Developer Tools
ASP.NET MVC 2.0 (2993939) Important  Security Feature Bypass Important
ASP.NET MVC 3.0 (2993937) Important  Security Feature Bypass Important
ASP.NET MVC 4.0 (2993928) Important  Security Feature Bypass Important
ASP.NET MVC 5.0 (2992080) Important  Security Feature Bypass Important
ASP.NET MVC 5.1 (2994397) Important  Security Feature Bypass Important

 

MVC XSS Vulnerability - CVE-2014-4075

A cross-site scripting (XSS) vulnerability exists in ASP.NET MVC that could allow an attacker to inject a client-side script into the user's web browser. The script could spoof content, disclose information, or take any action that the user could take on the site on behalf of the targeted user.

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

Mitigating Factors

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:

  • In a web-based attack scenario, an attacker could host a specially crafted website that is designed to exploit this vulnerability through a web browser, and then convince a user to view the website. The attacker could also take advantage of compromised websites and websites that accept or host user-provided content or advertisements. These websites could contain specially crafted content that could exploit this vulnerability. In all cases, however, an attacker would have no way to force users to view the attacker-controlled content. Instead, an attacker would have to convince users to take action, typically by getting them to click a link in an email message or in an Instant Messenger message that takes them to the attacker's website, or by getting them to open an attachment sent through email.
  • The XSS Filter in Internet Explorer 8, Internet Explorer 9, Internet Explorer 10, and Internet Explorer 11 prevents this attack for users when browsing to websites in the Internet Zone. Note that the XSS Filter in Internet Explorer 8, Internet Explorer 9, Internet Explorer 10, and Internet Explorer 11 is enabled by default in the Internet zone, but is not enabled by default in the Intranet Zone.

Workarounds

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:

  • Set Internet and Local intranet security zone settings to "High" to block ActiveX Controls and Active Scripting in these zones
    You can help protect against exploitation of this vulnerability by changing your settings for the Internet security zone to block ActiveX controls and Active Scripting. You can do this by setting your browser security to High.

    To raise the browsing security level in Internet Explorer, perform the following steps:

    1. On the Internet Explorer Tools menu, click Internet Options.
    2. In the Internet Options dialog box, click the Security tab, and then click Internet.
    3. Under Security level for this zone, move the slider to High. This sets the security level for all websites you visit to High.
    4. Click Local intranet.
    5. Under Security level for this zone, move the slider to High. This sets the security level for all websites you visit to High.
    6. Click OK to accept the changes and return to Internet Explorer.

Note If no slider is visible, click Default Level, and then move the slider to High.

Note Setting the level to High may cause some websites to work incorrectly. If you have difficulty using a website 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 even with the security setting set to High.

Impact of workaround. There are side effects to blocking ActiveX Controls and Active Scripting. Many websites that are on the Internet or on an intranet use ActiveX or Active Scripting to provide additional functionality. For example, an online e-commerce site or banking site may use ActiveX Controls to provide menus, ordering forms, or even account statements. Blocking ActiveX Controls or Active Scripting is a global setting that affects all Internet and intranet sites. If you do not want to block ActiveX Controls or Active Scripting for such sites, use the steps outlined in "Add sites that you trust to the Internet Explorer Trusted sites zone".

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

After you set Internet Explorer to block 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 websites exactly as you do today, while helping to protect yourself from this attack on untrusted sites. We recommend that you add only sites that you trust to the Trusted sites zone.

To do this, perform the following steps:

  1. In Internet Explorer, click Tools, click Internet Options, and then click the Security tab.
  2. In the Select a web content zone to specify its current security settings box, click Trusted Sites, and then click Sites.
  3. 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.
  4. In the Add this website to the zone box, type the URL of a site that you trust, and then click Add.
  5. Repeat these steps for each site that you want to add to the zone.
  6. 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.

FAQ

What is the scope of the vulnerability?
This is a cross-site scripting (XSS) vulnerability that could lead to elevation of privilege.

What causes the vulnerability?
The vulnerability is caused when ASP.NET MVC fails to properly encode input.

What is the component affected by the vulnerability?
System.Web.Mvc.dll is the component affected by the vulnerability.

What is cross-site scripting (XSS)?
Cross-site scripting (XSS) is a class of security vulnerability that can enable an attacker to inject script into the response to a webpage request. This script is then run by the requesting application, often times a web browser. The script could then spoof content, disclose information, or take any action that the user could take on the affected website, on behalf of the targeted user.

What might an attacker use the vulnerability to do?
An attacker who successfully exploited this vulnerability could inject a client-side script into the user's instance of Internet Explorer. The script could spoof content, disclose information, or take any action that the user could take on the site on behalf of the targeted user.

How could an attacker exploit the vulnerability?
In a web-based attack scenario, an attacker could convince the user to visit a webpage that contains specially crafted content designed to exploit the vulnerability.

What systems are primarily at risk from the vulnerability?
Servers running affected versions of ASP.NET MVC are primarily at risk from this vulnerability.

What does the update do?
The update addresses the vulnerability by correcting how ASP.NET MVC handles the encoding of input.

When this security bulletin was issued, had this vulnerability been publicly disclosed?
Yes. This vulnerability has been publicly disclosed. It has been assigned Common Vulnerability and Exposure number CVE-2014-4075.

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.

Detection and Deployment Tools and Guidance

Several resources are available to help administrators deploy security updates. 

  • Microsoft Baseline Security Analyzer (MBSA) lets administrators scan local and remote systems for missing security updates and common security misconfigurations. 
  • Windows Server Update Services (WSUS), Systems Management Server (SMS), and System Center Configuration Manager help administrators distribute security updates. 
  • The Update Compatibility Evaluator components included with Application Compatibility Toolkit aid in streamlining the testing and validation of Windows updates against installed applications. 

For information about these and other tools that are available, see Security Tools for IT Pros

Security Update Deployment

ASP.NET MVC 2.0

Reference Table

The following table contains the security update information for this software.

Overview The update for ASP.NET MVC 2.0 is provided via automatic updating and is also available for manual installation via the Microsoft Download Center.
Installation information
DLC package filename and download link AspNetMVC2.msi
NuGet package filename Not applicable
NuGet update procedure Not applicable
Impact Installing this update will cause IIS to restart.
Restart requirement In some cases, this update does not require a restart. If the required files are being used, this update will require a restart. If this behavior occurs, a message appears that advises you to restart.
Removal information To remove this update, you will need to use the Add or Remove Programs item in Control Panel to uninstall the full ASP.NET MVC 2 product (Microsoft ASP.NET MVC 2) and then install the previous product version
Update information See Microsoft Knowledge Base Article 2993939
Install verification Use Add or Remove Programs item in Control Panel and look for Microsoft ASP.NET MVC2.The version installed is 2.0.60926.0.

 

ASP.NET MVC 3.0

Reference Table

The following table contains the security update information for this software.

Overview The update for ASP.NET MVC 3.0 is provided via automatic updating and is also available for manual installation via the Microsoft Download Center or NuGet.
Installation information
DLC package filename and download link AspNetMVC3.msi
NuGet package filename Microsoft.AspNet.Mvc.3.0.50813.1.nupkg
NuGet update procedure Update your Visual Studio project packages using NuGet , recompile your application, and deploy 1. Open your solution in Visual Studio. 2. In Solution Explorer, right-click the References node and then click Manage NuGet Packages. 3. Select the Updates tab. A list of packages with updates appears in the center pane. 4. Select the update package for your version of ASP.NET MVC and then click Update. 5. Compile and deploy your web application. For more information about managing NuGet Packages using the NuGet dialog, see Managing NuGet Packages Using the Dialog.
Impact Installing this update will cause IIS to restart.
Restart requirement In some cases, this update does not require a restart. If the required files are being used, this update will require a restart. If this behavior occurs, a message appears that advises you to restart.
Removal information To remove this update, you will need to use the Add or Remove Programs item in Control Panel to uninstall the full ASP.NET MVC 3 product (Microsoft ASP.NET MVC 3) and then install the previous product version
Update information See Microsoft Knowledge Base Article 2993937
Install verification Use Add or Remove Programs item in Control Panel and look for Microsoft ASP.NET MVC 3. The version installed is 3.0.50813.0. For the NuGet update, the file version of the deployed binary is 3.0.50813.0.

 

ASP.NET MVC 4.0

Reference Table

The following table contains the security update information for this software.

Overview The update for ASP.NET MVC 4.0 is provided via automatic updating and is also available for manual installation via the Microsoft Download Center or NuGet.
Installation information
DLC package filename and download link AspNetMVC4.msi
NuGet package filename Microsoft.AspNet.Mvc.4.0.40804.0.nupkg
NuGet update procedure Update your Visual Studio project packages using NuGet , recompile your application, and deploy 1. Open your solution in Visual Studio. 2. In Solution Explorer, right-click the References node and then click Manage NuGet Packages. 3. Select the Updates tab. A list of packages with updates appears in the center pane. 4. Select the update package for your version of ASP.NET MVC and then click Update. 5. Compile and deploy your web application. For more information about managing NuGet Packages using the NuGet dialog, see Managing NuGet Packages Using the Dialog.
Impact Installing this update will cause IIS to restart.
Restart requirement In some cases, this update does not require a restart. If the required files are being used, this update will require a restart. If this behavior occurs, a message appears that advises you to restart.
Removal information To remove this update, you will need to use the Add or Remove Programs item in Control Panel to uninstall the full ASP.NET MVC 4 product (Microsoft ASP.NET MVC 4 Runtime) and then install the previous product version
Update information See Microsoft Knowledge Base Article 2993928
Install verification Use Add or Remove Programs item in Control Panel and look for Microsoft ASP.NET MVC 4 Runtime. The version installed is 4.0.40804.0. For the NuGet update, the file version of the deployed binary is 4.0.40804.0.

 

ASP.NET MVC 5.0

Reference Table

The following table contains the security update information for this software.

Overview The update for ASP.NET MVC 5.0 is available for manual installation via the Microsoft Download Center or NuGet. This update is a patch for the ASP.NET MVC 5.0 product.
Installation information
DLC package filename and download link AspNetWebFxUpdate_KB2992080.msi
NuGet package filename Microsoft.AspNet.Mvc.5.0.2.nupkg
NuGet update procedure Update your Visual Studio project packages using NuGet , recompile your application, and deploy 1. Open your solution in Visual Studio. 2. In Solution Explorer, right-click the References node and then click Manage NuGet Packages. 3. Select the Updates tab. A list of packages with updates appears in the center pane. 4. Select the update package for your version of ASP.NET MVC and then click Update. 5. Compile and deploy your web application. For more information about managing NuGet Packages using the NuGet dialog, see Managing NuGet Packages Using the Dialog.
Impact Installing this update will cause IIS to restart.
Restart requirement In some cases, this update does not require a restart. If the required files are being used, this update will require a restart. If this behavior occurs, a message appears that advises you to restart.
Removal information Use Add or Remove Programs item in Control Panel and right-click to remove the update. The update name shown will be Microsoft ASP.NET Web Frameworks 5.0 Security Update (KB2992080).
Update information See Microsoft Knowledge Base Article 2992080
Install verification Use Add or Remove Programs item in Control Panel and look for Microsoft ASP.NET Web Frameworks 5.0 Security Update (KB2992080). For the NuGet update, the file version of the deployed binary is 5.0.20821.0.

 

ASP.NET MVC 5.1

Reference Table

The following table contains the security update information for this software.

Overview The update for ASP.NET MVC 5.1 is available for manual installation via the Microsoft Download Center or NuGet. This update is a patch for the ASP.NET MVC 5.1 product.
Installation information
DLC package filename and download link AspNetWebFxUpdate_KB2994397.msi
NuGet package filename Microsoft.AspNet.Mvc.5.1.3.nupkg
NuGet update procedure Update your Visual Studio project packages using NuGet , recompile your application, and deploy 1. Open your solution in Visual Studio. 2. In Solution Explorer, right-click the References node and then click Manage NuGet Packages. 3. Select the Updates tab. A list of packages with updates appears in the center pane. 4. Select the update package for your version of ASP.NET MVC and then click Update. 5. Compile and deploy your web application. For more information about managing NuGet Packages using the NuGet dialog, see Managing NuGet Packages Using the Dialog.
Impact Installing this update will cause IIS to restart.
Restart requirement In some cases, this update does not require a restart. If the required files are being used, this update will require a restart. If this behavior occurs, a message appears that advises you to restart.
Removal information Use Add or Remove Programs item in Control Panel and right-click to remove the update. The update name shown will be Microsoft ASP.NET Web Frameworks 5.1 Security Update (KB2994397).
Update information See Microsoft Knowledge Base Article 2994397
Install verification Use Add or Remove Programs item in Control Panel and look for Microsoft ASP.NET Web Frameworks 5.1 Security Update (KB2994397). For the NuGet update, the file version of the deployed binary is 5.1.20821.0.

 

Other Information

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 go to the active protections websites provided by program partners, listed in Microsoft Active Protections Program (MAPP) Partners.

Support

How to obtain help and support for this security update

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 14, 2014): Bulletin published.

Page generated 2014-10-15 12:02Z-07:00.