Alerta Vermelho na Torre de Controle .NET

Atenção, desenvolvedores: se o seu código roda em ASP.NET Core, é hora de parar o que está fazendo e prestar atenção. A Microsoft acaba de lançar um patch para uma vulnerabilidade tão séria que recebeu a nota 9.9 de 10 na escala CVSS, praticamente um recorde para a empresa. Identificada como CVE-2025-55315, a falha permite um tipo de ataque conhecido como 'HTTP Request Smuggling' ou, em bom português, contrabando de requisições HTTP. De acordo com o comunicado oficial, um atacante já autenticado pode explorar interpretações inconsistentes de requisições HTTP para burlar funcionalidades de segurança, e o pior: a Microsoft afirma que não existem fatores de mitigação conhecidos. A lógica é simples: ou você atualiza, ou a porta fica aberta.

O Contrabando Digital: O Que é a Falha CVE-2025-55315?

Vamos dissecar o problema. O 'HTTP Request Smuggling' acontece quando um servidor proxy e o servidor web principal interpretam os limites de uma mesma requisição HTTP de maneiras diferentes. Se um atacante consegue criar uma requisição ambígua usando cabeçalhos como Content-Length ou Transfer-Encoding, então ele pode esconder uma segunda requisição maliciosa dentro da primeira. O proxy a vê como uma só, mas o servidor a processa como duas, executando o comando escondido sem as devidas verificações. É como passar um item proibido pela alfândega dentro de uma mala com fundo falso. A vulnerabilidade afeta especificamente as versões 10.0, 9.0, e 8.0 do ASP.NET Core, além do pacote Kestrel para a versão 2.x. Segundo o Microsoft Security Response Center, o impacto é direto na forma como as aplicações lidam com autenticação e autorização, o que nos leva à próxima pergunta.

Por Que a Nota é 9.9? Microsoft Explica a Gravidade

Uma nota 9.9 soa quase como o fim do mundo digital, e a razão é mais complexa do que parece. Barry Dorrans, Security TPM para .NET na Microsoft, esclareceu que a pontuação não se deve apenas à falha de contrabando em si. Em suas palavras, citadas pelo portal InfoQ, a avaliação considera como o bug pode afetar as aplicações construídas sobre o ASP.NET. Em termos práticos, a falha é a porta de entrada para estragos maiores, como:

  • Escalonamento de privilégios: um usuário comum poderia ganhar acesso de administrador.
  • Server-Side Request Forgery (SSRF): o servidor poderia ser forçado a fazer requisições para sistemas internos ou externos.
  • Bypass de Cross-Site Request Forgery (CSRF): proteções contra requisições forjadas poderiam ser contornadas.
  • Ataques de injeção: a validação de inputs poderia ser ignorada, abrindo caminho para injeção de código.

"Mas Eu Não Uso Proxy!": O Alerta de Andrew Lock

Neste ponto, um desenvolvedor poderia pensar: "Minha aplicação não está atrás de um proxy, então estou seguro". Falso. Andrew Lock, engenheiro na Datadog e autor do .NET Escapades, publicou um artigo desmistificando essa ideia. Segundo ele, se seu aplicativo utiliza métodos como HttpRequest.Body ou HttpRequest.BodyReader para processar o corpo de uma requisição, então você já está realizando "coisas de proxy", mesmo sem ter um explicitamente configurado. A simples leitura e reprocessamento da requisição podem tornar a aplicação vulnerável. Portanto, a premissa de que a ausência de um proxy garante segurança é uma falácia lógica perigosa neste cenário.

Corrida Contra o Tempo: Como se Proteger

A solução é direta e inegociável: atualizar. A Microsoft recomenda fortemente que os desenvolvedores instalem as versões corrigidas do runtime/SDK para o ASP.NET Core 8, 9 ou 10. Para quem ainda utiliza versões mais antigas, é preciso atualizar o pacote Microsoft.AspNetCore.Server.Kestrel.Core para a versão 2.3.6 ou superior. A comunidade de desenvolvedores, conforme observado em discussões no Reddit, ficou inicialmente confusa sobre o impacto em versões sem suporte, como o .NET 6. Embora a Microsoft não publique CVEs para software em fim de vida (EOL), o InfoQ aponta que existem patches de terceiros disponíveis. Para os céticos que gostam de ver para crer, Hayden Barnes, da HeroDevs, disponibilizou uma aplicação de console que permite testar se sua build do .NET está vulnerável. A verdade está lá para quem quiser verificar.

Conclusão: A Lógica da Urgência

O cenário é claro. Temos uma vulnerabilidade de severidade 9.9, sem mitigação conhecida além do patch, que afeta uma vasta gama de aplicações ASP.NET Core e abre portas para uma série de ataques devastadores. A Microsoft entregou a correção; ignorá-la não é uma opção estratégica, é um convite ao desastre. A lógica é implacável: atualize agora ou prepare-se para as consequências. Não há "depende" nesta equação.