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:
|
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:
Hi
Another question – what does “Windows 10 Version Next and Windows Server, Version Next” mean? the links take me nowhere…
Thanks
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...
Looks like time to update
Thanks for the valuable information.
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...
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.