.NET 10.0.14 chega fora de banda: overflow na descompressão Brotli e dois CVEs de outubro relançados
A versão fora de banda de 25 de outubro de 2026 (.NET 8.0.33, 9.0.22, 10.0.14, 11 RC3) corrige um buffer overflow no Brotli, uma falha de propriedade em tarballs do Linux e dois CVEs que as correções de 13 de outubro não resolveram por completo.
Doze dias depois do Patch Tuesday de outubro, a Microsoft lançou uma versão de segurança fora de banda para o .NET: .NET 8.0.33, 9.0.22, 10.0.14 e .NET 11 RC3. A Microsoft diz para atualizar “as soon as possible”, e dois dos quatro CVEs desta versão são relançamentos. Se você implantou o 10.0.13, 9.0.21 ou 8.0.32 em 13 de outubro e considerou o assunto encerrado, ainda não terminou.
CVE-2026-111497: um buffer overflow na descompressão Brotli
CVE-2026-111497 é um buffer overflow na forma como o .NET descomprime dados Brotli. Um atacante não autenticado que consiga fazer bytes Brotli maliciosos chegarem ao seu processo pode ler ou corromper memória, o que pode significar divulgação de informações, negação de serviço ou elevação de privilégio. Afeta todas as plataformas. O .NET Framework não é afetado.
Há três caminhos de entrada:
- Descompressão de requisições do ASP.NET Core, que descomprime corpos de requisição
Content-Encoding: brenviados por clientes. - Descompressão automática do HttpClient, que descomprime respostas
brdos servidores que você chama. - Uso direto das APIs Brotli de
System.IO.Compression.
Os dois primeiros vêm desativados por padrão, então saber se você usa isso é questão de um grep. Estes são os padrões a procurar:
// 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);
A descompressão de requisições é o caso preocupante. Ela recebe bytes controlados pelo atacante de qualquer cliente antes de o seu código vê-los. Se você a habilitou em um endpoint público, aplique o patch primeiro e faça a auditoria depois.
CVE-2026-114148: propriedade de arquivos em tarballs do Linux
CVE-2026-114148 trata de metadados de propriedade inseguros em tarballs do Linux, que um atacante local poderia usar para modificar arquivos e escalar privilégios. No .NET 10 e 11, afeta apenas os tarballs de source-build. No .NET 8 e 9, cobre também os tarballs do runtime do ASP.NET Core, então, se os seus scripts de provisionamento executam tar -xzf no runtime do ASP.NET Core, baixe o tarball atualizado mesmo que você nunca compile o .NET a partir do código-fonte.
As correções de 13 de outubro estavam incompletas
Segundo o post, a versão do Patch Tuesday não corrigiu por completo dois avisos, então esta versão os emite novamente:
- CVE-2026-70197, corrupção de memória em
SocketAsyncEventArgs, no .NET 8, 9, 10 e 11. - CVE-2026-102870, no depurador do Blazor WebAssembly, no .NET 10 e 11.
SocketAsyncEventArgs fica por baixo de Socket, do Kestrel e de SocketsHttpHandler, então quase todo aplicativo .NET com acesso à rede executa esse código.
Como implantar a correção
A correção depende de como o aplicativo é implantado:
# 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 .
Uma atualização do runtime no nível do host não faz nada por aplicativos self-contained ou imagens de contêiner, porque eles carregam o próprio runtime. Quem usa o .NET 11 RC2 precisa migrar para o RC3, o que também importa se você levou a licença go-live do RC2 para produção antes da GA de novembro.
Em abril, o .NET 10.0.7 também foi lançado fora de banda para corrigir o CVE-2026-40372 no Data Protection. Como naquela vez, a solução é atualizar e reimplantar, e problemas após a atualização devem ser reportados em dotnet/core issues.
Comments
Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.