Google · Golang.Org/X/Crypto · CVE-2024-45337
**Nome do software vulnerável e versões afetadas**
Versões do golang.org/x/crypto anteriores à 0.31.0
**Descrição**
O problema está relacionado ao uso indevido da função de retorno `ServerConfig.PublicKeyCallback` em aplicativos e bibliotecas, o que pode levar a uma violação da autorização. O protocolo SSH permite que os clientes verifiquem se uma chave pública é aceitável antes de comprovar o controle da chave privada correspondente. O `PublicKeyCallback` pode ser chamado com várias chaves, e a ordem em que as chaves foram fornecidas não pode ser usada para inferir com qual chave o cliente se autenticou com sucesso, se houver. Alguns aplicativos, que armazenam a(s) chave(s) passada(s) para o `PublicKeyCallback` (ou informações derivadas) e tomam decisões relevantes para a segurança com base nisso assim que a conexão é estabelecida, podem fazer suposições incorretas. Por exemplo, um invasor pode enviar as chaves públicas A e B e, em seguida, autenticar-se com A. O `PublicKeyCallback` seria chamado apenas duas vezes, primeiro com A e depois com B. Um aplicativo vulnerável pode então tomar decisões de autorização com base na chave B, para a qual o invasor não controla, na verdade, a chave privada.
**Recomendações**
Para resolver o problema, atualize o golang.org/x/crypto para a versão 0.31.0 ou posterior. Como solução alternativa temporária, considere usar o campo Extensions do valor de retorno Permissions das várias chamadas de retorno de autenticação para registrar dados associados à tentativa de autenticação, em vez de fazer referência a um estado externo. Assim que a conexão for estabelecida, t