.NET 10.0.14 llega fuera de banda: desbordamiento en la descompresión Brotli y dos CVE de octubre relanzados
La versión fuera de banda del 25 de octubre de 2026 (.NET 8.0.33, 9.0.22, 10.0.14, 11 RC3) corrige un desbordamiento de búfer en Brotli, una falla de propiedad en los tarballs de Linux y dos CVE que los parches del 13 de octubre no cerraron por completo.
Doce días después del Patch Tuesday de octubre, Microsoft publicó una versión de seguridad fuera de banda para .NET: .NET 8.0.33, 9.0.22, 10.0.14 y .NET 11 RC3. Microsoft indica que hay que actualizar “lo antes posible”, y dos de los cuatro CVE que incluye son relanzamientos. Si el 13 de octubre implementaste 10.0.13, 9.0.21 u 8.0.32 y diste el tema por cerrado, todavía no terminaste.
CVE-2026-111497: un desbordamiento de búfer en la descompresión Brotli
CVE-2026-111497 es un desbordamiento de búfer en la forma en que .NET descomprime datos Brotli. Un atacante no autenticado que logre hacer llegar bytes Brotli manipulados a tu proceso podría leer o corromper memoria, lo que puede traducirse en divulgación de información, denegación de servicio o elevación de privilegios. Afecta a todas las plataformas. .NET Framework no se ve afectado.
Hay tres vías de entrada:
- La descompresión de solicitudes de ASP.NET Core, que descomprime los cuerpos de solicitud
Content-Encoding: brenviados por los clientes. - La descompresión automática de HttpClient, que descomprime las respuestas
brde los servidores a los que llamas. - El uso directo de las API Brotli de
System.IO.Compression.
Las dos primeras están desactivadas por defecto, así que saber si las usas es cuestión de un grep. Estos son los patrones que debes buscar:
// 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);
La descompresión de solicitudes es el caso preocupante. Recibe bytes controlados por el atacante desde cualquier cliente antes de que tu código los vea. Si la habilitaste en un endpoint público, aplica el parche primero y audita después.
CVE-2026-114148: propiedad de los tarballs de Linux
CVE-2026-114148 se refiere a metadatos de propiedad inseguros en los tarballs de Linux, que un atacante local podría usar para modificar archivos y escalar privilegios. En .NET 10 y 11 solo afecta a los tarballs de source-build. En .NET 8 y 9 también abarca los tarballs del runtime de ASP.NET Core, así que si tus scripts de aprovisionamiento ejecutan tar -xzf sobre el runtime de ASP.NET Core, descarga el tarball actualizado aunque nunca compiles .NET desde el código fuente.
Las correcciones del 13 de octubre estaban incompletas
Según la publicación, la versión del Patch Tuesday no corrigió por completo dos avisos, por lo que esta versión los vuelve a emitir:
- CVE-2026-70197, corrupción de memoria en
SocketAsyncEventArgs, en .NET 8, 9, 10 y 11. - CVE-2026-102870, en el depurador de Blazor WebAssembly, en .NET 10 y 11.
SocketAsyncEventArgs está por debajo de Socket, Kestrel y SocketsHttpHandler, así que casi toda aplicación .NET con acceso a red ejecuta ese código.
Cómo implementar la actualización
La solución depende de cómo esté implementada la aplicación:
# 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 .
Actualizar el runtime a nivel de host no hace nada por las aplicaciones autocontenidas ni por las imágenes de contenedor, porque llevan su propio runtime. Quienes usan .NET 11 RC2 deben pasar a RC3, lo cual también importa si llevaste a producción la licencia go-live de RC2 antes de la GA de noviembre.
En abril, .NET 10.0.7 también se publicó fuera de banda para corregir CVE-2026-40372 en Data Protection. Como entonces, la solución es actualizar y volver a implementar, y los problemas posteriores a la actualización se reportan en dotnet/core issues.
Comments
Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.