CVE-2026-70188: Microsoft ASP.NET Core Kestrel HTTP request smuggling in HTTP/2

CVE-2026-70188 · Severity: critical · CVSS 9.1 · Published 2026-10-13

Microsoft ASP.NET Core's Kestrel HTTP server improperly handles newline characters in HTTP/2 request trailers, allowing attackers to bypass security controls and smuggle malicious requests. This vulnerability enables cache poisoning, session hijacking, and other attacks on web applications running vulnerable versions of ASP.NET Core.

Technologies: Microsoft Asp.Net Core, Microsoft.AspNetCore.App.Runtime.linux-arm (NuGet), Microsoft.AspNetCore.App.Runtime.linux-arm64 (NuGet), Microsoft.AspNetCore.App.Runtime.linux-musl-arm (NuGet), Microsoft.AspNetCore.App.Runtime.linux-musl-arm64 (NuGet), Microsoft.AspNetCore.App.Runtime.linux-musl-x64 (NuGet), Microsoft.AspNetCore.App.Runtime.linux-x64 (NuGet), Microsoft.AspNetCore.App.Runtime.osx-arm64 (NuGet), Microsoft.AspNetCore.App.Runtime.osx-x64 (NuGet), Microsoft.AspNetCore.App.Runtime.win-arm64 (NuGet), Microsoft.AspNetCore.App.Runtime.win-x64 (NuGet), Microsoft.AspNetCore.App.Runtime.win-x86 (NuGet). Vendors: Microsoft, NuGet.

Quick answers

Is CVE-2026-70188 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-70188 being exploited in the wild.
How severe is CVE-2026-70188?
Critical severity, with a CVSS score of 9.1, published 13 October 2026.
Which products and versions are affected?
Microsoft Asp.Net Core 8.0.0–8.0.31, 9.0.0–9.0.20, 10.0.0–10.0.12, 11.0.0-preview.1–11.0.0-rc.1; Microsoft.AspNetCore.App.Runtime.linux-arm (NuGet) >= 11.0.0-preview.1, <= 11.0.0-rc.1, ECOSYSTEM:introduced=11.0.0-preview.1,fixed=11.0.0-rc.2; Microsoft.AspNetCore.App.Runtime.linux-arm64 (NuGet) >= 11.0.0-preview.1, <= 11.0.0-rc.1, ECOSYSTEM:introduced=11.0.0-preview.1,fixed=11.0.0-rc.2; Microsoft.AspNetCore.App.Runtime.linux-musl-arm (NuGet) >= 11.0.0-preview.1, <= 11.0.0-rc.1, ECOSYSTEM:introduced=11.0.0-preview.1,fixed=11.0.0-rc.2; and 8 more.
Is there a fix for CVE-2026-70188?
Yes. Microsoft.AspNetCore.App.Runtime.linux-arm (NuGet): upgrade to 11.0.0-rc.2 or later; Microsoft.AspNetCore.App.Runtime.linux-arm64 (NuGet): upgrade to 11.0.0-rc.2 or later; Microsoft.AspNetCore.App.Runtime.linux-musl-arm (NuGet): upgrade to 11.0.0-rc.2 or later; Microsoft.AspNetCore.App.Runtime.linux-musl-arm64 (NuGet): upgrade to 11.0.0-rc.2 or later; Microsoft.AspNetCore.App.Runtime.linux-musl-x64 (NuGet): upgrade to 11.0.0-rc.2 or later; Microsoft.AspNetCore.App.Runtime.linux-x64 (NuGet): upgrade to 11.0.0-rc.2 or later; Microsoft.AspNetCore.App.Runtime.osx-arm64 (NuGet): upgrade to 11.0.0-rc.2 or later; Microsoft.AspNetCore.App.Runtime.osx-x64 (NuGet): upgrade to 11.0.0-rc.2 or later; Microsoft.AspNetCore.App.Runtime.win-arm64 (NuGet): upgrade to 11.0.0-rc.2 or later; Microsoft.AspNetCore.App.Runtime.win-x64 (NuGet): upgrade to 11.0.0-rc.2 or later; Microsoft.AspNetCore.App.Runtime.win-x86 (NuGet): upgrade to 11.0.0-rc.2 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-70188 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-70188?
Check whether you run Microsoft Asp.Net Core, Microsoft.AspNetCore.App.Runtime.linux-arm (NuGet), Microsoft.AspNetCore.App.Runtime.linux-arm64 (NuGet) or one of the others listed at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • Microsoft.AspNetCore.App.Runtime.linux-arm (NuGet): upgrade to 11.0.0-rc.2 or later
    dotnet add package Microsoft.AspNetCore.App.Runtime.linux-arm --version 11.0.0-rc.2
  • Microsoft.AspNetCore.App.Runtime.linux-arm64 (NuGet): upgrade to 11.0.0-rc.2 or later
    dotnet add package Microsoft.AspNetCore.App.Runtime.linux-arm64 --version 11.0.0-rc.2
  • Microsoft.AspNetCore.App.Runtime.linux-musl-arm (NuGet): upgrade to 11.0.0-rc.2 or later
    dotnet add package Microsoft.AspNetCore.App.Runtime.linux-musl-arm --version 11.0.0-rc.2
  • Microsoft.AspNetCore.App.Runtime.linux-musl-arm64 (NuGet): upgrade to 11.0.0-rc.2 or later
    dotnet add package Microsoft.AspNetCore.App.Runtime.linux-musl-arm64 --version 11.0.0-rc.2
  • Microsoft.AspNetCore.App.Runtime.linux-musl-x64 (NuGet): upgrade to 11.0.0-rc.2 or later
    dotnet add package Microsoft.AspNetCore.App.Runtime.linux-musl-x64 --version 11.0.0-rc.2
  • Microsoft.AspNetCore.App.Runtime.linux-x64 (NuGet): upgrade to 11.0.0-rc.2 or later
    dotnet add package Microsoft.AspNetCore.App.Runtime.linux-x64 --version 11.0.0-rc.2
  • Microsoft.AspNetCore.App.Runtime.osx-arm64 (NuGet): upgrade to 11.0.0-rc.2 or later
    dotnet add package Microsoft.AspNetCore.App.Runtime.osx-arm64 --version 11.0.0-rc.2
  • Microsoft.AspNetCore.App.Runtime.osx-x64 (NuGet): upgrade to 11.0.0-rc.2 or later
    dotnet add package Microsoft.AspNetCore.App.Runtime.osx-x64 --version 11.0.0-rc.2
  • Microsoft.AspNetCore.App.Runtime.win-arm64 (NuGet): upgrade to 11.0.0-rc.2 or later
    dotnet add package Microsoft.AspNetCore.App.Runtime.win-arm64 --version 11.0.0-rc.2
  • Microsoft.AspNetCore.App.Runtime.win-x64 (NuGet): upgrade to 11.0.0-rc.2 or later
    dotnet add package Microsoft.AspNetCore.App.Runtime.win-x64 --version 11.0.0-rc.2
  • Microsoft.AspNetCore.App.Runtime.win-x86 (NuGet): upgrade to 11.0.0-rc.2 or later
    dotnet add package Microsoft.AspNetCore.App.Runtime.win-x86 --version 11.0.0-rc.2

Technical details

Kestrel accepts newline characters in HTTP/2 request trailers and dynamic HPACK table values instead of treating them as malformed, enabling HTTP request smuggling (CWE-444). The vulnerability affects all ASP.NET Core 8.0.0–8.0.31, 9.0.0–9.0.20, 10.0.0–10.0.12, and 11.0.0-preview.1–11.0.0-rc.1 on all platforms and architectures. An unauthenticated network attacker can craft malicious HTTP/2 requests to desynchronize request boundaries between Kestrel and downstream proxies or applications.

Affected products

  • Microsoft ASP.NET Core 8.0.0–8.0.31, 9.0.0–9.0.20, 10.0.0–10.0.12, 11.0.0-preview.1–11.0.0-rc.1

Identifiers

  • CVE-2026-70188
  • GHSA-fpq8-4vhr-rcxx

Timeline

  • 2026-10-13: advisory

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.