.NET Framework October 2020 Security and Quality Rollup Updates

Tara Overfield

Revised 6/8/2021: On June 8th, 2021, this update was released to replace a previous update to address a “revocation server was offline” error that may occur during installation. If you’ve already installed a previous release of this update, no action is required.

Revised 4/15/2021: On April 13th, 2021, this update was released to replace a previous release of this some updates. See known issues section for more details. If you’ve already installed a previous release of an affected update, no action is required.

Revised 1/15/2021: Added known issues details for ASP.Net applications may not deliver cookieless tokens in the URI

Today, we are releasing the October 2020 Security and Quality Rollup Updates for .NET Framework.

Security

CVE-2020-16937– .NET Framework Information Disclosure Vulnerability

An information disclosure vulnerability exists when the .NET Framework improperly handles objects in memory. An attacker who successfully exploited the vulnerability could disclose contents of an affected system’s memory. To exploit the vulnerability, an authenticated attacker would need to run a specially crafted application. The update addresses the vulnerability by correcting how the .NET Framework handles objects in memory.

To learn more about the vulnerabilities, go to the following Common Vulnerabilities and Exposures (CVE).

Quality and Reliability

This release contains the following quality and reliability improvements.

ASP.NET
  • Disabled resuse of AppPathModifier in ASP.Net control output.
  • HttpCookie objects in the ASP.Net request context will be created with configured defaults for cookie flags instead of .NET-style primitive defaults to match the behavior of `new HttpCookie(name)`.
CLR1
  • Added a CLR config variable Thread_AssignCpuGroups (1 by default) that can be set to 0 to disable automatic CPU group assignment done by the CLR for new threads created by Thread.Start() and thread pool threads, such that an app may do its own thread-spreading.
  • Addressed a rare data corruption that can occur when using new API’s such as Unsafe.ByteOffset which are often used with the new Span types. The corruption could occur when a GC operation is performed while a thread is calling Unsafe.ByteOffset from inside of a loop.
SQL
  • Addressed a failure that sometimes occured when a user connects to one Azure SQL database, performed an enclave based operation, and then connected to another database under the same server that has the same Attestation URL and performed an enclave operation on the second server.
Windows Forms
  • Addressed a regression introduced in .NET Framework 4.8, where Control.AccessibleName, Control.AccessibleRole, and Control.AccessibleDescription properties stopped working for the following controls:Label, GroupBox, ToolStrip, ToolStripItems, StatusStrip, StatusStripItems, PropertyGrid, ProgressBar, ComboBox, MenuStrip, MenuItems, DataGridView.
  • Addressed a regression in accessible name for combo box items for data bound combo boxes. .NET Framework 4.8 started using type name instead of the value of the DisplayMember property as an accessible name, this improvement uses the DisplayMember again.
WCF2
  • Addressed an issue with WCF services sometimes failing to start when starting multiple services concurrently.

1 Common Language Runtime (CLR) 2 Windows Communication Foundation (WCF)

Known issues in this security update

ASP.Net applications fail during precompilation with error message

Symptoms After you apply this October 13, 2020 Security and Quality Rollup for .NET Framework 4.8, some ASP.Net applications fail during precompilation. The error message that you receive will likely contain the words “Error ASPCONFIG.”

Cause An invalid configuration state in either the “sessionState,” “anonymouseIdentification,” or “authentication/forms” sections of “System.web” configuration. This might occur during build-and-publish routines if configuration transformations leave the Web.config file in an intermediate state for precompilation.

Workaround Customers who observe new unexpected failures or functional issues can implement an application setting by adding (or merging) the following code to the application configuration file. Setting either “true” or “false” will avoid the issue. However, we recommend that you set this value to “true” for sites that do not rely on cookieless features.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
      <appSettings>
          <add key=”aspnet:DisableAppPathModifier” value=”true” />
     </appSettings>
</configuration>

ASP.Net applications may not deliver cookieless tokens in the URI

Symptoms After you apply this October 1, 2020 Security and Quality Rollup for .NET Framework 4.8, some ASP.Net applications may not deliver cookieless tokens in the URI, possibly resulting in 302-redirect loops or lost or missing session state.

Cause The ASP.Net features for Session State, Anonymous Identification, and Forms Authentication all rely on issuing tokens to a web client, and they all allow the option for those tokens to be delivered in a cookie or embedded in the URI for clients that don’t support cookies. The URI-embedding has long been an insecure and disrecommended practice and this KB quietly disables issuing tokens in URI’s unless one of these three features explicitly requests a cookie mode of “UseUri” in configuration. Configurations that specify “AutoDetect” or “UseDeviceProfile” may inadvertently result in attempted and failed embedding of these tokens in the URI.

Workaround Customers who observe new unexpected behavior are recommended to change all three cookieless settings to “UseCookies” if possible.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
     <system.web>
          <anonymousidentification cookieless="UseCookies" />
          <sessionState cookieless="UseCookies" />
          <authentication>
               <forms cookieless="UseCookies" />
          </authentication>
     </system.web>
</configuration>

If an application absolutely must continue using URI-embedded tokens and can do so safely, then they can be re-enabled with the following appSeting. But again, it is highly recommended to move away from embedding these tokens in URI’s.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
     <appSettings>
          <add key="aspnet:DisableAppPathModifier" value="false" />
     </appSettings>
</configuration>

ASP.Net applications may not deliver cookieless tokens in the URI

Symptoms After you apply this October 1, 2020 Security and Quality Rollup for .NET Framework 4.8, some ASP.Net applications may not deliver cookieless tokens in the URI, possibly resulting in 302-redirect loops or lost or missing session state.

Cause The ASP.Net features for Session State, Anonymous Identification, and Forms Authentication all rely on issuing tokens to a web client, and they all allow the option for those tokens to be delivered in a cookie or embedded in the URI for clients that don’t support cookies. The URI-embedding has long been an insecure and disrecommended practice and this KB quietly disables issuing tokens in URI’s unless one of these three features explicitly requests a cookie mode of “UseUri” in configuration. Configurations that specify “AutoDetect” or “UseDeviceProfile” may inadvertently result in attempted and failed embedding of these tokens in the URI.

Workaround Customers who observe new unexpected behavior are recommended to change all three cookieless settings to “UseCookies” if possible.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
     <system.web>
          <anonymousidentification cookieless="UseCookies" />
          <sessionState cookieless="UseCookies" />
          <authentication>
               <forms cookieless="UseCookies" />
          </authentication>
     </system.web>
</configuration>

If an application absolutely must continue using URI-embedded tokens and can do so safely, then they can be re-enabled with the following appSeting. But again, it is highly recommended to move away from embedding these tokens in URI’s.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
     <appSettings>
          <add key="aspnet:DisableAppPathModifier" value="false" />
     </appSettings>
</configuration>

 

Symptom Customers using Windows 7 SP1, Windows Server 2008 R2 SP1 or Windows Server 2008, this update does not install, and it returns either or both of the following error messages:

  • -2146762495
  • A required certificate is not within its validity period when verifying against the current system clock or the timestamp in the signed file.
  • The revocation function was unable to check revocation because the revocation server was offline.

Workaround

This issue was corrected by the latest release of this update. If you’ve already installed a previous release of this update, no action is required.

Getting the Update

The Security and Quality Rollup is available via Windows Update, Windows Server Update Services, and Microsoft Update Catalog. The Security Only Update is available via Windows Server Update Services and Microsoft Update Catalog.

Microsoft Update Catalog

You can get the update via the Microsoft Update Catalog. For Windows 10, NET Framework 4.8 updates are available via Windows Update, Windows Server Update Services, Microsoft Update Catalog. Updates for other versions of .NET Framework are part of the Windows 10 Monthly Cumulative Update.

**Note**: Customers that rely on Windows Update and Windows Server Update Services will automatically receive the .NET Framework version-specific updates. Advanced system administrators can also take use of the below direct Microsoft Update Catalog download links to .NET Framework-specific updates. Before applying these updates, please ensure that you carefully review the .NET Framework version applicability, to ensure that you only install updates on systems where they apply.

The following table is for Windows 10 and Windows Server 2016+ versions.

Product Version Cumulative Update
Windows 10 Version Next and Windows Server, Version Next
.NET Framework 3.5, 4.8 Catalog 4578967
Windows 10, version 20H2 and Windows Server, version 20H2
.NET Framework 3.5, 4.8 Catalog 4578968
Windows 10 2004 and Windows Server, version 2004
.NET Framework 3.5, 4.8 Catalog 4578968
Windows 10 1909 and Windows Server, version 1909
.NET Framework 3.5, 4.8 Catalog 4578974
Windows 10 1903 and Windows Server, version 1903
.NET Framework 3.5, 4.8 Catalog 4578974
Windows 10 1809 (October 2018 Update) and Windows Server 2019 4579976
.NET Framework 3.5, 4.7.2 Catalog 4578966
.NET Framework 3.5, 4.8 Catalog 4578973
Windows 10 1803 (April 2018 Update)
.NET Framework 3.5, 4.7.2 Catalog 4580330
.NET Framework 4.8 Catalog 4578972
Windows 10 1709 (Fall Creators Update)
.NET Framework 3.5, 4.7.1, 4.7.2 Catalog 4580328
.NET Framework 4.8 Catalog 4578971
Windows 10 1703 (Creators Update)
.NET Framework 3.5, 4.7, 4.7.1, 4.7.2 Catalog 4580370
.NET Framework 4.8 Catalog 4578970
Windows 10 1607 (Anniversary Update) and Windows Server 2016
.NET Framework 3.5, 4.6.2, 4.7, 4.7.1, 4.7.2 Catalog 4580346
.NET Framework 4.8 Catalog 4578969
Windows 10 1507
.NET Framework 3.5, 4.6, 4.6.1, 4.6.2 Catalog 4580327

The following table is for earlier Windows and Windows Server versions.

Product Version Security and Quality Rollup Security Only Update
Windows 8.1, Windows RT 8.1 and Windows Server 2012 R2 4579979 4580469
.NET Framework 3.5 Catalog 4578953 Catalog 4578981
.NET Framework 4.5.2 Catalog 4578956 Catalog 4578984
.NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2 Catalog 4578962 Catalog 4578986
.NET Framework 4.8 Catalog 4578976 Catalog 4578989
Windows Server 2012 4579978 4580468
.NET Framework 3.5 Catalog 4578950 Catalog 4578978
.NET Framework 4.5.2 Catalog 4578954 Catalog 4578982
.NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2 Catalog 4578961 Catalog 4578985
.NET Framework 4.8 Catalog 4578975 Catalog 4578988
Windows 7 SP1 and Windows Server 2008 R2 SP1 4579977 4580467
.NET Framework 3.5.1 Catalog 4578952 Catalog 4578980
.NET Framework 4.5.2 Catalog 4578955 Catalog 4578983
.NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2 Catalog 4578963 Catalog 4578987
.NET Framework 4.8 Catalog 4578977 Catalog 4578990
Windows Server 2008 4579980 4580470
.NET Framework 2.0, 3.0 Catalog 4578951 Catalog 4578979
.NET Framework 4.5.2 Catalog 4578955 Catalog 4578983
.NET Framework 4.6 Catalog 4578963 Catalog 4578987

 

Previous Monthly Rollups

The last few .NET Framework Monthly updates are listed below for your convenience:

6 comments

Discussion is closed. Login to edit/delete existing comments.

  • Mystery Man 0

    Thanks for the notice. I’ll make sure all my Windows 10 devices receive this update. To conserve bandwidth, I download manually and install on many home devices.

  • Ismail Demir 0

    About fragmented Updates

    An example to show you whats going wrong with netfx or general windows updates.

    TL;DR: The combination of both updates kb3037574 and kb2861698 supersede kb2656356

    .
    .
    Windows 7 SP1+ NetFramework Updates

    1) Following 3 updates are available via Windows Update

    [kb2656356] ‘dated 2011
    system.web.extensions.dll
    system.web.resources.dll
    system.web.dll
    webengine.dll
    aspnet_wp.exe

    [kb2861698] ‘dated 2013
    system.web.extensions.dll
    system.servicemodel.web.dll

    [kb3037574] ‘dated 2015
    system.web.resources.dll
    system.web.dll
    webengine.dll
    system.web.regularexpressions.dll
    system.web.mobile.dll
    system.web.mobile.resources.dll
    aspnet_wp.exe

    2) Supersedence

    kb2656356 vs kb2861698

    kb2861698 has updated system.web.extensions.dll version.
    And also a new file: system.servicemodel.web.dll which kb2656356 hasn’t.
    But on the other side the kb2861698 has missing some files from kb2656356 to
    supersede kb2656356.

    kb2656356 vs kb3037574

    kb3037574 has 3 new files and 4 updated files.
    Only one file (system.web.extensions.dll) is missing from kb3037574 to supersede kb2656356.

    3) Result: The combination of both
    Now the combination of the two updates, kb2861698 and kb3037574 [should be] supersede the kb2656356!
    -> All files gets replaced with a newer version.

    Its just an example of my findings…There is more!

    Note: Registry entries are not included

  • ferit gezgil 0

    Thanks for the valuable information.

  • Andrew Dinh 0

    Looks like time to update

  • Stav Kaufman 0

    Hi,
    Thank you for this summary of October .NET patches.

    I’m trying to understand supersedence relations between the .NET patches of last 3 months.
    I understand there’s this relation:
    4579979 (oct)–> 4576630 (sep)–>4570508 (aug) of parents
    and this of children: (in this case .NET 3.5 on Windows 8.1 and 2012 R2)
    4578953 (oct) –> 4569768 (aug)

    But could not find anywhere how to relate the patches for 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2 on Windows 8.1 and 2012 R2.
    How can I find out if
    4578962 (oct) -?-> 4576614 (sep) -?-> 4569774 (aug)
    other than guessing…?

    Same question with regards the 4.8 updates for these Windows versions.

    Thank you very much in advance.

  • Stav Kaufman 0

    Hi
    Another question – what does “Windows 10 Version Next and Windows Server, Version Next” mean? the links take me nowhere…
    Thanks

Feedback usabilla icon