Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

Description of the Security and Quality Rollup for the .NET Framework 4.6 and 4.6.1 for Windows 7 SP1 and Windows Server 2008 R2 SP1 and the .NET Framework 4.6 for Windows Server 2008 SP2: May 9, 2017


View products that this article applies to.

Summary

This security update for the Microsoft .NET Framework resolves a security feature bypass vulnerability in which the .NET Framework (and the .NET Core) components don't completely validate certificates. To learn more about this vulnerability, see Microsoft Common Vulnerabilities and Exposures CVE-2017-0248.

This update also contains security-enhancing fixes to the Windows Presentation Framework PackageDigitalSignatureManager component's ability to sign packages with the SHA256 hash algorithm.

↑ Back to the top


Important

  • If you install a language pack after you install this update, you must reinstall this update. Therefore, we recommend that you install any language packs that you need before you install this update. For more information, see Add language packs to Windows.

↑ Back to the top


Additional information about this security update

  • Enhanced Key Usage (EKU) is described in RFC 5280 in section 4.2.1.12: This extension indicates one or more purposes for which the certified public key may be used, in addition to or in place of the basic purposes that are indicated in the key usage extension. For example, a certificate that’s used for the authentication of a client to a server must be configured for Client Authentication. Similarly, a certificate that’s used for the authentication of a server must be configured for Server Authentication.

    When certificates are used for authentication, the authenticator examines the client certificate and seeks the correct purpose object identifier in Application Policies extensions. For example, the object identifier for Client Authentication is 1.3.6.1.5.5.7.3.2. When a certificate is used for client authentication, this object identifier must be present in the EKU extensions of the certificate or authentication fails. Certificates that have no EKU extension continue to authenticate correctly.

    If you temporarily can’t access correctly reissued certificates, you can choose to opt in or out of the security change across all computer operations to avoid any connectivity effects. To do this, specify the following registry key settings, depending on which .NET Framework version your application is targeting.


    Method 1: Updating registry key (available for all versions)

    Note This registry entry must be a DWORD entry.
     
    • For 32-bit process on 32-bit system and 64-bit process on 64-bit system:
       
      HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\v4.0.30319@RequireCertificateEKUs=0
    • For 32-bit process on 64-bit system:
       
      HKEY_LOCAL_MACHINE \Software\Wow6432Node\Microsoft\.NETFramework\v4.0.30319@RequireCertificateEKUs=0
    You can also opt out on a per-application basis. The following options are available for disabling this change to make sure that application compatibility is maintained.

    Method 2: Disable the policy for individual applications

    Note This registry entry must be a DWORD entry. The only valid value is 0. Any other value is ignored.
    • For 32-bit process on 32-bit system and 64-bit process on 64-bit system:
      HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\v4.0.30319@System.Net.ServicePointManager.RequireCertificateEKUs
      S:\Prj\console_pg\console_pg45\bin\Release\console_pg45.exe=0
      C:\MyApp\MyApp.exe=0
    • For 32-bit process on 64-bit system:
      HKEY_LOCAL_MACHINE \Software\Wow6432Node\Microsoft\.NETFramework\v4.0.30319@System.Net.ServicePointManager.RequireCertificateEKUs
      S:\Prj\console_pg\console_pg45\bin\Release\console_pg45.exe=0
      C:\MyApp\MyApp.exe=0
    Method 3: Using configuration API (available for the .NET Framework 4.6 and later versions)

    Starting in the .NET Framework 4.6, you can change the configuration at an application level through code, an application configuration, or registry changes.

    Configuring the switch in the .NET Framework 4.6

    Note The following examples disable the security feature.
    • Programmatically

      The first thing that the application should do is run the following code. This is because Service Point Manager initializes only one time.

       
      private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching";
      private const string DontCheckCertificateEKUsName= @"Switch.System.Net.DontCheckCertificateEKUs";
      AppContext.SetSwitch(DisableCachingName, true);
      AppContext.SetSwitch(DontCheckCertificateEKUsName, true);
    • Application configuration

      To change the application configuration, add the following entry:

       
      <runtime>
      <AppContextSwitchOverrides value="Switch.System.Net.DontCheckCertificateEKUsName=true"/>
      </runtime>
    • Registry key (machine global):
       

      Registry location: HKEY_LOCAL_MACHINE\Software\[Wow6432Node\]Microsoft\.NETFramework\AppContext\Switch.System.Net.DontCheckCertificateEKUsName

      Type: String
      Value: "true"

    Note By default, Switch.System.Net.DontCheckCertificateEKUsName = True for all .NET Framework 4.x applications that are running on the .NET Framework 4.6 and later versions.
  • For more information about this security update as it relates to Windows 7 Service Pack 1 and Windows Server 2008 R2 Service Pack 1, see the following article in the Microsoft Knowledge Base:

    4019112 Security and Quality Rollup for the .NET Framework 3.5.1, 4.5.2, 4.6, 4.6.1, and 4.6.2 updates for Windows 7 Service Pack 1 and Windows Server 2008 R2 Service Pack 1: May 9, 2017

    For more information about this security update as it relates to Windows Server 2008, see the following article in the Microsoft Knowledge Base:

    4019115 Security and Quality Rollup for the .NET Framework 2.0 Service Pack 2, 4.5.2, and 4.6 updates for Windows Server 2008 Service Pack 2: May 9, 2017

↑ Back to the top


How to obtain and install the update

Method 1: Windows Update

This update is available through Windows Update. When you turn on automatic updating, this update will be downloaded and installed automatically. For more information about how to get security updates automatically, see Windows Update: FAQ.
 

Method 2: Windows Software Update Services (WSUS)

On your WSUS server, follow these steps:

  1. Click Start, click Administrative Tools, and then click Microsoft Windows Server Update Services 3.0.
  2. Expand ComputerName, and then click Action.
  3. Click Import Updates.
  4. WSUS will open a browser window in which you may be prompted to install an ActiveX control. You must install the ActiveX control to continue.
  5. Once the control is installed, you will see the Microsoft Update Catalog screen. Enter one of the following, as appropriate for your Windows operating system, in the Search box, and then click Search.
     
    • For Windows Server 2008, enter 4019115.
    • For Windows 7 or Windows Server 2008 R2, enter 4019112.
  6. Locate the .NET Framework packages that match the operating systems, languages, and processors in your environment. Click Add to add them to your basket.
  7. When you have selected all the packages that you need, click View Basket.
  8. Click Import to import the packages to your WSUS server.
  9. Click Close once the packages have been imported to return to WSUS.

The updates are now available for installation through WSUS.

↑ Back to the top


Update deployment information

For deployment details for this security update, go to the following article in the Microsoft Knowledge Base:

20170509 Security update deployment information: May 9, 2017

Update removal information

Note We do not recommend that you remove any security update.

To remove this update, use the Programs and Features item in Control Panel.

Update restart information

This update does not require a system restart after you apply it unless files that are being updated are locked or are being used.

Update replacement information

This update does not replace any previously released update.

↑ Back to the top


File information

File hash
Package Name Package Hash SHA 1 Package Hash SHA 2
NDP46-KB4014511-x64.exe BEAB62B7D633D8CC6A207F52348C1954EAEE6A03 7418974D308A712FB6209D688191C861292DE8FA6D3BF08C91D62E0F82DA4824
NDP46-KB4014511-x86.exe 5F79AE2826E102DEB33EBD5DC7DD13C4A6837844 66303075E7C594F23AA2984075E4547699D20B55C22D8EC193A9A79025A5E51D

 

 

↑ Back to the top


How to obtain help and support for this security update

↑ Back to the top


Applies to

This article applies to the following:
 
  • Microsoft .NET Framework 4.6 and 4.6.1 when used with:
    • Windows Server 2008 R2 Service Pack 1
    • Windows 7 Service Pack 1
  • Microsoft .NET Framework 4.6 when used with:
    • Windows Server 2008 Service Pack 2

↑ Back to the top


Keywords: kbsurveynew, kbsecvulnerability, kbsecurity, kbsecreview, kbsecbulletin, atdownload, kblangall, kbfix, kbexpertiseinter, kbbug, kb, kbmustloc

↑ Back to the top

Article Info
Article ID : 4014511
Revision : 26
Created on : 5/12/2017
Published on : 5/13/2017
Exists online : False
Views : 406