CVE-2026-70186

Concurrent Execution using Shared Resource with Improper Synchronization
Affects
ASP.NET Core / Kestrel HTTP/3
in
.NET
No items found.
Versions
>=6.0.0 <=6.0.46 (HTTP/3 enabled)

Patch Available.

Exclamation circle icon
Patch Available

This Vulnerability has been fixed in the Never-Ending Support (NES) version offered by HeroDevs.

Overview

.NET is a free, open-source, cross-platform framework for building modern apps and powerful cloud services. It consists of a runtime and a developer platform made up of tools, programming languages, and libraries for building many different types of applications.

A denial of service vulnerability (CVE-2026-70186) has been identified in ASP.NET Core's Kestrel web server, where crafted HTTP/3 stream reset or abort sequences from an unauthenticated client can deadlock connection handling and exhaust server threads.

Per CWE-833: Deadlock, the weakness is a product containing multiple threads or executable segments that are waiting for each other to release a necessary lock, resulting in deadlock.

This issue only affects ASP.NET Core 6.0 applications that have turned on HTTP/3 in Kestrel. In .NET 6, HTTP/3 is a preview feature that is off by default: an application must opt in to preview features, enable the HTTP/3 protocol on an endpoint, and run on a host with the msquic library available. Applications serving only HTTP/1.1 and HTTP/2 are not affected. Microsoft's advisory lists ASP.NET Core 8.0, 9.0 and 10.0 as affected; .NET 6 is past end of life and is not assessed there.

Additionally, if you've deployed self-contained applications targeting any of the impacted versions with HTTP/3 enabled, these applications are also vulnerable and must be recompiled and redeployed.

Details

Module Info

  • Product: Any NES for .NET 6 ASP.NET Core application at version 6.0.46 or earlier that enables HTTP/3 in Kestrel.
  • Affected packages: ASP.NET Core shared framework (Microsoft.AspNetCore.App), in-box code from Microsoft.AspNetCore.Server.Kestrel.Core
  • Affected versions:
    • >= 6.0.0 <= 6.0.46 (HTTP/3 enabled)
  • Package manager: NuGet, Windows Installer, Docker
  • GitHub repository: https://github.com/dotnet/aspnetcore
  • Published packages: Download .NET (Linux, macOS, and Windows)
  • Fixed in: NES for .NET 6.0.47

Vulnerability Info

This High-severity vulnerability is found in Kestrel's HTTP/3 stream handling, in the Http3Stream type.

When an HTTP/3 stream is reset or aborted, Kestrel tears it down: it stops the stream's output producer and closes the frame writer and transport. Kestrel ran that teardown while holding the stream's completion lock. The teardown also needs the output producer's lock, and the normal output path takes those two locks in the opposite order. When an abort and an output flush on the same stream overlapped, each thread could end up waiting for the lock the other held. A client that repeatedly resets or aborts streams in a crafted pattern could leave threads blocked this way until the server ran short of them.

The fix holds the completion lock only for the state change that marks the stream aborted, and runs the teardown outside it. Request completion now waits for any abort still in progress before the stream is returned to the pool and reused.

This vulnerability has been present since HTTP/3 support was introduced as a preview in ASP.NET Core 6.0.

Mitigation

.NET 6 is End-of-Life and will not receive any updates to address this issue. For more information see .NET and .NET Core official support policy.

Users of the affected components should apply one of the following mitigations:

  • Upgrade affected ASP.NET Core deployments to one of:
    • NES for .NET 6.0.47 or later
    • .NET / ASP.NET Core 8.0.32 or later
    • .NET / ASP.NET Core 9.0.21 or later
    • .NET / ASP.NET Core 10.0.13 or later
  • Turn off HTTP/3 on Kestrel endpoints until patched. It is a preview feature in .NET 6.
  • Leverage a commercial support partner like HeroDevs for post-EOL security support, including NES for .NET 6.0.47 or later.

Credits

Kevin Gosse and Muhammad Abdul Rehman, as credited in Microsoft's advisory.

Vulnerability Details
Severity
Level
CVSS Assessment
Low
>=0 <4
Medium
>=4 <6
High
>=6 <8
Critical
>=8 <10
High
ID
CVE-2026-70186
PROJECT Affected
ASP.NET Core / Kestrel HTTP/3
Versions Affected
>=6.0.0 <=6.0.46 (HTTP/3 enabled)
NES Versions Affected
Published date
October 13, 2026
≈ Fix date
October 13, 2026
Fixed in
Category
Concurrent Execution using Shared Resource with Improper Synchronization
Vex Document
Download VEXHow do I use it?
Sign up for the latest vulnerability alerts fixed in
NES for .NET
Rss feed icon
Subscribe via RSS
or

By submitting the form I acknowledge receipt of our Privacy Policy.

Thanks for signing up for our Newsletter! We look forward to connecting with you.
Oops! Something went wrong while submitting the form.