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 |
Add/Remove Programs Names |
Microsoft ASP.NET MVC 2 |
Microsoft ASP.NET MVC 3 |
Microsoft ASP.NET MVC 4 Runtime |
**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:
- On the Internet Explorer Tools menu, click Internet Options.
- In the Internet Options dialog box, click the Security tab, and then click Internet.
- Under Security level for this zone, move the slider to High. This sets the security level for all websites you visit to High.
- Click Local intranet.
- Under Security level for this zone, move the slider to High. This sets the security level for all websites you visit to High.
- 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:
- 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 website 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.
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](https://support.microsoft.com/kb/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](http://docs.nuget.org/docs/start-here/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](https://support.microsoft.com/kb/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](http://docs.nuget.org/docs/start-here/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](https://support.microsoft.com/kb/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](http://docs.nuget.org/docs/start-here/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](https://support.microsoft.com/kb/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](http://docs.nuget.org/docs/start-here/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](https://support.microsoft.com/kb/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
- Help installing updates: Support for Microsoft Update
- Security solutions for IT professionals: TechNet Security Troubleshooting and Support
- Help protect your computer that is running Windows from viruses and malware: Virus Solution and Security Center
- Local support according to your country: International Support
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.