Start Debugging

.NET 10.0.14 erscheint außerhalb des Zyklus: Brotli-Dekomprimierungs-Overflow und zwei erneut veröffentlichte Oktober-CVEs

Das Out-of-Band-Release vom 25. Oktober 2026 (.NET 8.0.33, 9.0.22, 10.0.14, 11 RC3) behebt einen Brotli-Pufferüberlauf, einen Fehler bei der Eigentümerschaft in Linux-Tarballs und zwei CVEs, die die Patches vom 13. Oktober nicht vollständig geschlossen haben.

Zwölf Tage nach dem Oktober-Patch-Tuesday hat Microsoft ein Out-of-Band-Sicherheitsupdate für .NET veröffentlicht: .NET 8.0.33, 9.0.22, 10.0.14 und .NET 11 RC3. Microsoft empfiehlt, “as soon as possible” zu aktualisieren, und zwei der vier enthaltenen CVEs sind Neuveröffentlichungen. Wer am 13. Oktober 10.0.13, 9.0.21 oder 8.0.32 ausgerollt und das Thema abgehakt hat, ist noch nicht fertig.

CVE-2026-111497: ein Pufferüberlauf bei der Brotli-Dekomprimierung

CVE-2026-111497 ist ein Pufferüberlauf in der Art, wie .NET Brotli-Daten dekomprimiert. Ein nicht authentifizierter Angreifer, der präparierte Brotli-Bytes in Ihren Prozess einschleusen kann, kann unter Umständen Speicher lesen oder beschädigen. Das kann Informationspreisgabe, Denial of Service oder Rechteausweitung bedeuten. Betroffen sind alle Plattformen. .NET Framework ist nicht betroffen.

Es gibt drei Einfallstore:

Die ersten beiden sind standardmäßig deaktiviert, die Frage “Nutzen wir das?” lässt sich also mit einem grep klären. Nach diesen Mustern lohnt sich die Suche:

// 1. Server side: clients can send you Brotli bodies
builder.Services.AddRequestDecompression();
app.UseRequestDecompression();

// 2. Client side: servers can send you Brotli responses
var handler = new SocketsHttpHandler
{
    AutomaticDecompression = DecompressionMethods.All // includes Brotli
};

// 3. Direct API use on untrusted input
using var input = File.OpenRead(uploadPath);
using var brotli = new BrotliStream(input, CompressionMode.Decompress);
await brotli.CopyToAsync(output);

// Same code path through the span API
BrotliDecoder.TryDecompress(source, destination, out int written);

Die Dekomprimierung von Anfragen ist der kritische Fall. Sie verarbeitet von Angreifern kontrollierte Bytes eines beliebigen Clients, bevor Ihr Code sie zu sehen bekommt. Wenn Sie sie auf einem öffentlichen Endpunkt aktiviert haben, patchen Sie zuerst und prüfen Sie danach.

CVE-2026-114148: Eigentümerschaft in Linux-Tarballs

CVE-2026-114148 betrifft unsichere Metadaten zur Eigentümerschaft in Linux-Tarballs, mit denen ein lokaler Angreifer Dateien verändern und Rechte ausweiten könnte. Unter .NET 10 und 11 sind nur Source-Build-Tarballs betroffen. Unter .NET 8 und 9 gilt es auch für die Tarballs der ASP.NET-Core-Laufzeit. Wenn Ihre Provisionierungsskripte die ASP.NET-Core-Laufzeit per tar -xzf entpacken, laden Sie daher den aktualisierten Tarball herunter, auch wenn Sie .NET nie aus dem Quellcode bauen.

Die Korrekturen vom 13. Oktober waren unvollständig

Laut dem Beitrag haben die Patches vom Patch Tuesday zwei Advisories nicht vollständig behoben, weshalb dieses Release sie erneut herausgibt:

SocketAsyncEventArgs bildet die Grundlage von Socket, Kestrel und SocketsHttpHandler, sodass fast jede vernetzte .NET-App diesen Code ausführt.

Ausrollen des Updates

Die Korrektur hängt davon ab, wie die App bereitgestellt wird:

# Framework-dependent: update the host runtime, then restart the process
dotnet --list-runtimes
# expect Microsoft.NETCore.App 10.0.14 / 9.0.22 / 8.0.33

# Self-contained or Native AOT: the runtime is inside your output, so republish
dotnet publish -c Release -r linux-x64 --self-contained

# Containers: pull fresh base images and rebuild, do not reuse cached layers
docker build --pull -t myapp:patched .

Ein Laufzeit-Update auf Host-Ebene bewirkt bei eigenständigen (self-contained) Apps und Container-Images nichts, da diese ihre eigene Laufzeit mitbringen. Nutzer von .NET 11 RC2 müssen auf RC3 wechseln. Das gilt auch, wenn Sie die RC2-Go-Live-Lizenz vor dem GA im November in Produktion genommen haben.

Im April wurde bereits .NET 10.0.7 außerhalb des Zyklus veröffentlicht, um CVE-2026-40372 in Data Protection zu beheben. Wie damals gilt: aktualisieren und neu bereitstellen. Probleme nach dem Update gehören in die dotnet/core-Issues.

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.

< Zurück