Unknown · @Dfinity/Identity · CVE-2024-1631
**Nome do software vulnerável e versões afetadas**
Versões do @dfinity/identity anteriores à 1.0.1
**Descrição**
A biblioteca oferece uma função para gerar um par de chaves ed25519 por meio de `Ed25519KeyIdentity.generate`, com um parâmetro opcional para fornecer um valor de semente de 32 bytes, que será então usado como chave secreta. Quando nenhum valor de semente é fornecido, espera-se que a biblioteca gere a chave secreta usando aleatoriedade segura. No entanto, uma alteração recente quebrou essa garantia e passa a usar uma semente insegura para a geração do par de chaves. Como a chave privada dessa identidade está comprometida, é possível perder fundos associados ao principal nos ledgers ou perder acesso a um canister onde esse principal é o controlador.
**Recomendações**
Para versões anteriores à 1.0.1, atualize para a versão 1.0.1 para corrigir a vulnerabilidade.
Como solução alternativa temporária, considere chamar a função como `Ed25519KeyIdentity.generate(null)` para forçar a função a gerar uma semente aleatória segura.
Como alternativa, passe uma variável aleatória gerada de forma segura como semente para `Ed25519KeyIdentity.generate` para forçar a biblioteca a usá-la como semente para gerar o par de chaves.
Para usuários, remova o principal afetado como controlador de um canister e crie uma nova identidade para gerenciar canisters.
Verifique os fundos em carteiras ou ledgers e transfira-os para uma nova conta se o principal da conta corresponder à identidade comprometida.