HighVulnerabilityPatch available

.NET out-of-band update (CVE-2026-70197, CVE-2026-102870, CVE-2026-114148): the 13 October fixes were incomplete

Microsoft re-fixed two October .NET flaws and a Linux tarball privilege bug. Install .NET 8.0.33, 9.0.22 or 10.0.14, then rebuild self-contained apps.

Published
Updated
Fixed in
.NET 8.0.33, 9.0.22, 10.0.14, .NET 11 RC3
Exploitation
No exploitation reported for CVE-2026-70197, CVE-2026-102870 or CVE-2026-114148; the Brotli fix in the same release (CVE-2026-111497) is in CISA KEV since 27 October 2026

Live scores

CVE-2026-70197
EPSS
0.008
low predicted chance of attack
VEDAS
0.048
little exploit evidence
On CISA KEV
Not listed
Detection rule
None yet

Live scores

CVE-2026-102870
EPSS
0.009
low predicted chance of attack
VEDAS
0.053
little exploit evidence
On CISA KEV
Not listed
Detection rule
None yet

Live scores

CVE-2026-114148
EPSS
0.004
low predicted chance of attack
VEDAS
0.046
little exploit evidence
On CISA KEV
Not listed
Detection rule
None yet

Live scores

CVE-2026-111497
EPSS
0.826
very likely to be attacked soon
VEDAS
0.977
strong exploit evidence
On CISA KEV
Yes, since 2026-10-27
Detection rule
None yet
EPSS (chance of attack)
100.1Added to CISA KEV 2026-10-27CVE-2026-111497 EPSS over time2026-102026-11-01
VEDAS (exploit evidence)
100.9Added to CISA KEV 2026-10-27CVE-2026-111497 VEDAS over time2026-102026-11-01

Thin horizontal line: the “likely” (EPSS 0.10) or “strong” (VEDAS 0.90) threshold. Shaded “no data” areas are periods when cve-scores did not publish. The vertical line is the day CISA added it to its exploited list.

VEDAS flagged this bug about 3 days before CISA confirmed attacks.

What happened

On 25 October 2026, Microsoft shipped out-of-band security updates for .NET 8, 9 and 10 and .NET 11 Release Candidate 3 (.NET Blog). The release does three things.

It re-fixes two October bugs. The 13 October release “did not fully address” two flaws, so Microsoft re-released them (.NET Blog):

  • CVE-2026-70197, an out-of-bounds write in .NET that lets an unauthenticated attacker run code over a network. CVSS 8.1. The blog lists it as SocketAsyncEventArgs memory corruption, for .NET 8, 9, 10 and 11 (CVE record; .NET Blog).
  • CVE-2026-102870, a code injection flaw in ASP.NET Core rated CVSS 8.8 that needs user interaction. The blog lists it as a Blazor WebAssembly debugger issue, for .NET 10 and 11 (CVE record).

It adds a new Linux fix. CVE-2026-114148 (CVSS 7.8) is unsafe ownership metadata in .NET tarballs. A local attacker could modify files and gain higher privileges. For .NET 10 and 11 only source-build tarballs are affected. For .NET 8 and 9, Microsoft’s ASP.NET Core tarballs are affected too, even if you never build from source (.NET Blog; CVE record).

It carries the Brotli fix. CVE-2026-111497 is the buffer overflow in Google’s Brotli decoder. .NET apps are exposed if they decompress Brotli data through ASP.NET Core request decompression, HttpClient automatic response decompression, or the System.IO.Compression Brotli APIs. The first two are off by default. .NET Framework is not affected (.NET Blog). CISA added CVE-2026-111497 to its Known Exploited Vulnerabilities catalog on 27 October 2026, with a federal due date of 10 November (CISA KEV). Our Node.js advisory covers that bug in detail.

Microsoft’s post does not report exploitation of the other three. CISA’s enrichment of the CVE records for CVE-2026-70197, CVE-2026-102870 and CVE-2026-114148 lists exploitation as “none” (CVE-2026-70197; CVE-2026-114148).

Am I affected?

Any .NET 8, 9 or 10 runtime older than 8.0.33, 9.0.22 or 10.0.14 is affected, including hosts patched on 13 October. Check each machine and each image:

bash
# Runtimes installed on a host (framework-dependent apps use these)
dotnet --list-runtimes

# Inside a container image
docker run --rm --entrypoint dotnet <image> --list-runtimes

Self-contained apps do not use the host runtime. For those, check the runtime pack version recorded in the app’s <app>.deps.json (search it for runtimepack), or simply rebuild.

For CVE-2026-114148, you are affected on Linux if you installed .NET 8 or 9 from Microsoft’s ASP.NET Core runtime tarball, or if you consume .NET source-build tarballs (for example, a distribution or internal build that packages .NET from source).

For the Brotli bug, search your code for the features the blog names:

bash
grep -rnE 'AddRequestDecompression|AutomaticDecompression|BrotliStream|BrotliDecoder' --include='*.cs' .

What to do now

  1. Install the 25 October runtimes: .NET 8.0.33, 9.0.22 or 10.0.14. Move .NET 11 RC2 to RC3. Restart framework-dependent apps and confirm with dotnet --list-runtimes (.NET Blog).
  2. Rebuild and republish self-contained apps with the updated SDK. Updating the host runtime does not touch the runtime bundled inside the app.
  3. Rebuild container images from updated .NET base images and redeploy. Microsoft says container deployments must be checked separately because they carry their own runtime.
  4. ASP.NET Core tarball users on .NET 8 and 9: replace the install with the refreshed ASP.NET Core Runtime tarball for your version. Source-build consumers need the updated source-build artifacts and a rebuild of their packages.
  5. If you cannot patch today and use Brotli decompression, check whether request decompression or HttpClient automatic decompression is enabled on internet-facing services. Microsoft offers no workaround beyond updating.

Sources