Duende · Duende.Accesstokenmanagement · CVE-2025-26620
Nome do Software Vulnerável e Versões Afetadas:
Duende.AccessTokenManagement (versões afetadas não especificadas)
Descrição:
O Duende.AccessTokenManagement contém uma condição de corrida ao solicitar tokens de acesso usando o fluxo de credenciais do cliente. Solicitações simultâneas para obter um token de acesso usando parâmetros de protocolo diferentes podem retornar tokens de acesso obtidos com o escopo, indicador de recurso ou outros parâmetros de protocolo incorretos. Este problema é um tanto atípico e apenas uma pequena porcentagem de usuários provavelmente será afetada. O impacto deste problema depende de como o Duende.AccessTokenManagement é utilizado e da arquitetura de segurança da solução. A maioria dos usuários não estará vulnerável a este problema, mas usuários mais avançados podem encontrar este problema ao chamar métodos específicos com parâmetros de solicitação de token personalizados, como `HttpContext.GetClientAccessTokenAsync()` e `IClientCredentialsTokenManagementService.GetAccessTokenAsync()`. O impacto de obter um token de acesso com parâmetros de protocolo diferentes dos pretendidos variará dependendo da lógica da aplicação, da arquitetura de segurança e da política de autorização dos servidores de recurso.
Recomendações:
Para resolver o problema, a maioria dos usuários pode simplesmente atualizar o pacote NuGet para a versão mais recente.
Para personalizações do `IClientCredentialsTokenCache` que derivam da implementação padrão (`DistributedClientCredentialsTokenCache`), é necessária uma pequena alteração no código, pois seu construtor foi alterado para adicionar uma dependência ao serviço `ITokenRequestSynchronization`. O serviço de sincronização precisará ser injetado na classe derivada e passado para o construtor da classe base.
Como solução temporária, considere desativar as funções `GetClientAccessTokenAsync()` e `GetAccessTokenAsync()` até que uma correção esteja disponível.
Restrinja o acesso ao objeto `TokenRequestParameters` para minimizar o risco de exploração.