Resumo Executivo
Nossa equipe de pesquisa de segurança identificou que a vulnerabilidade divulgada recentemente CVE-2025-24070, uma vulnerabilidade de elevação de privilégios no ASP.NET Core, também afeta aplicativos .NET 6, apesar de não ter sido mencionada no comunicado oficial de segurança da Microsoft. Como parte do nosso programa Endless Lifecycle Support (ELS) para o .NET 6, que oferece patches de fim de vida útil de longo prazo, analisamos essa vulnerabilidade minuciosamente e desenvolvemos um patch que corrige esse problema para nossos clientes que ainda operam nessa plataforma.
Compreendendo a vulnerabilidade
A CVE-2025-24070 é classificada como uma vulnerabilidade de alta gravidade (pontuação CVSS v3: 7,0) presente em aplicativos ASP.NET Core. A vulnerabilidade está relacionada ao método RefreshSignInAsync , que poderia permitir que um invasor se passasse por outra conta de usuário, resultando em elevação não autorizada de privilégios.
Especificamente, essa vulnerabilidade permite que um invasor chame RefreshSignInAsync e passar um parâmetro de usuário diferente daquele atualmente autenticado, sendo que o ASP.NET Core aceita essa solicitação. Essa falha de segurança apresenta potencial para exploração remota e pode levar a brechas de segurança significativas nos aplicativos afetados.
Versões afetadas
O comunicado da Microsoft menciona explicitamente o ASP.NET Core 9.0, o ASP.NET Core 8.0 e o ASP.NET Core 2.3 como as versões afetadas, uma vez que essas são as versões que atualmente contam com suporte oficial da empresa. Nossa investigação confirma que os aplicativos .NET 6 também apresentam essa vulnerabilidade.
As versões afetadas oficialmente documentadas incluem:
- ASP.NET Core 9.0.2 e versões anteriores
- ASP.NET Core 8.0.13 e versões anteriores
- ASP.NET Core 2.3.0 e versões anteriores
Nossa contribuição: Aplicativos .NET 6 que utilizam os componentes do ASP.NET Core Identity
Detalhes técnicos
A vulnerabilidade está presente no mecanismo de autenticação do ASP.NET Core, especificamente no classe SignInManager ao processar o método RefreshSignInAsync . A vulnerabilidade permite que o RefreshSignInAsync aceitar um parâmetro de usuário que não corresponda ao usuário autenticado no momento.
Em circunstâncias normais, atualizar uma sessão só deveria funcionar para o usuário atualmente autenticado. No entanto, devido a uma validação insuficiente, um invasor poderia:
- Obter uma sessão de autenticação válida
- Chamar RefreshSignInAsync com parâmetros para uma conta de usuário diferente
- Elevar com sucesso os privilégios deles para o nível da conta especificada
A correção implementada pela Microsoft para as versões compatíveis modifica o método RefreshSignInAsync para validar se o ID do usuário do parâmetro fornecido corresponde ao ID do usuário atualmente autenticado. Se não corresponderem, a operação falha silenciosamente (nas versões com patch) ou gera uma exceção (nas versões mais recentes).
Nossa solução para usuários do .NET 6
Como parte do nosso compromisso de oferecer suporte ao ciclo de vida ilimitado para o .NET 6, nós:
- Desenvolvemos um patch de segurança que oferece a mesma proteção às aplicações .NET 6
- Testamos exaustivamente este patch para garantir tanto a segurança quanto a compatibilidade
- Disponibilizamos imediatamente para todos os nossos clientes que fazem parte do nosso plano de suporte
Nosso patch implementa as mesmas verificações de segurança que a Microsoft adicionou às versões compatíveis, garantindo que o RefreshSignInAsync só possa atualizar o login do usuário atualmente autenticado. Isso é especialmente importante, considerando que o .NET 6 e o .NET 7 já chegaram ao fim da vida útil, e as atualizações oficiais de segurança da Microsoft não estão mais disponíveis para esses aplicativos.
Ações recomendadas
Se você estiver executando aplicativos .NET 6, recomendamos enfaticamente que tome as seguintes medidas:
- Aplique nosso patch de segurança imediatamente para se proteger contra possíveis explorações
- Faça uma auditoria no código de autenticação do seu aplicativo, especialmente em quaisquer implementações personalizadas que envolvam RefreshSignInAsync
- Implemente um sistema de registro de eventos adequado para detectar possíveis tentativas de exploração
Como obter a correção
Os clientes inscritos em nosso programa Endless Lifecycle Support podem baixar o patch de segurança do nosso repositório. A atualização pode ser aplicada com tempo de inatividade mínimo e não requer alterações no código do aplicativo.
Ainda não é nosso cliente? Saiba mais sobre nosso Suporte de Ciclo de Vida Ilimitado para .NET legado aqui.
Considerações finais
Essa descoberta ressalta a importância de um suporte prolongado para plataformas que já atingiram o fim do ciclo de vida por parte de seus fornecedores, mas que continuam sendo amplamente utilizadas. Nossa equipe de pesquisa de segurança permanece atenta à identificação de vulnerabilidades que afetam todas as versões do .NET, independentemente de seu status oficial de suporte.
Ao fornecer correções de segurança para o .NET 6, ajudamos as organizações a manter operações seguras enquanto planejam sua estratégia de migração em um ritmo que faça sentido do ponto de vista comercial.
CVE-2025-24070 | Pontuação CVSS v3: 7,0 (Alta) | 25 de março de 2025

