Microsoft is releasing this security advisory to provide information about a vulnerability in ASP.NET Core. This advisory also provides guidance on what developers can do to update their applications to remove this vulnerability.
A denial of service vulnerability exists when ASP.NET Core improperly handles web requests. An attacker who successfully exploited this vulnerability could cause a denial of service against an ASP.NET Core web application. The vulnerability can be exploited remotely, without authentication.
A remote unauthenticated attacker could exploit this vulnerability by issuing specially crafted requests to the ASP.NET Core application.
The update addresses the vulnerability by correcting how the ASP.NET Core web application handles web requests.
The original announcement for this issue can be found at https://github.com/dotnet/announcements/issues/162
Microsoft has not identified any mitigating factors for this vulnerability.
Please note that .NET Core 3.0 is now out of support and all applications should be updated to 3.1.
If you have a runtime or SDK with a version listed in affected software you are exposed to the vulnerability.
To fix the issue please install the latest version of .NET Core 3.1. If you have installed one or more .NET Core SDKs through Visual Studio, Visual Studio will prompt you to update Visual Studio which will also update your .NET Core SDKs.
You can list the versions you have installed by running the dotnet --info
command. You will see output like the following;
.NET Core SDK (reflecting any global.json):
Version: 3.1.100
Commit: cd82f021f4
Runtime Environment:
OS Name: Windows
OS Version: 10.0.18363
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\3.1.100\
Host (useful for support):
Version: 3.1.0
Commit: 65f04fb6db
.NET Core SDKs installed:
3.1.100 [C:\Program Files\dotnet\sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.App 3.1.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 3.1.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.1.0 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
Once you have installed the updated runtime or SDK, restart your apps for the update to take effect.
Additionally, if you've deployed self-contained applications targeting any of the impacted versions, these applications are also vulnerable and must be recompiled and redeployed.
If you have found a potential security issue in .NET Core, please email details to [email protected]. Reports may qualify for the .NET Core Bug Bounty. Details of the .NET Core Bug Bounty including terms and conditions are at https://aka.ms/corebounty.
You can ask questions about this issue on GitHub in the .NET Core GitHub organization. The main repos are located at https://github.com/dotnet/runtime and https://github.com/dotnet/aspnet/. The Announcements repo (https://github.com/dotnet/Announcements) will contain this bulletin as an issue and will include a link to a discussion issue. You can ask questions in the linked discussion issue.
The information provided in this advisory 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.
V1.0 (August 11, 2020): Advisory published.
_Version 1.0_
_Last Updated 2020-08-11_
The affected software is listed as .NET Core 3.1.3, but the update is 3.1.7. Is this a typo and should the affected version be 3.1.6?
Updated the affected software to 3.1.6 or lower
Are there any more details of when someone is affected? Is it the HTTP Parser in Kestrel? Or some more specific code (e. G. in Razor/Blazor/SignalR), which may not be used depending on the actual application?
Have there been any follow ups or updates to the question asked by @markusschaber ?
From my understanding, this vulnerability affects only .NET Core. However, the page found at the following link references Visual Studio Versions 2017 and 2019 (Table in the middle of page), making it appear as if these IDEs were also affected somehow. Could you please confirm that nothing needs to be patched for these software?
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-1597
Thank you. J.
Tagging @blowdart. Generally we patch VS so that the SDK and Runtime that it bundles contains the latest version.
* @markusschaber / @amills157 We don't discuss details of what was patched as a matter of policy.
So your policy forces every ASP.NET Core user to upgrade with high priority, whether they're affected or not. :-(
Thank you for the clarification. Sorry for the duplicate question.
J
@markusschaber This isn't new, is a Microsoft wide policy, and is unlikely to change.
If there was a small footprint of code affected , and we were 100% certain there were no other exploit routesyou'd see that in known mitigations which would state something like "If you are not using X then you are not affected".
Thank you for contacting us. Due to a lack of activity on this discussion issue we're closing it in an effort to keep our backlog clean. If you believe there is a concern related to the ASP.NET Core framework, which hasn't been addressed yet, please file a new issue.
This issue will be locked after 30 more days of inactivity. If you still wish to discuss this subject after then, please create a new issue!
Most helpful comment
Are there any more details of when someone is affected? Is it the HTTP Parser in Kestrel? Or some more specific code (e. G. in Razor/Blazor/SignalR), which may not be used depending on the actual application?