PT-2021-23101 · Npm · Keypair
Dan Suceava
+1
·
Publicado
2021-10-11
·
Atualizado
2021-10-19
·
CVE-2021-41117
CVSS v3.1
8.7
Alta
| Vetor | AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N |
Nome do software vulnerável e versões afetadas
Versões do keypair até e incluindo a 1.0.3
Descrição
A biblioteca keypair, um gerador de chaves RSA PEM em JavaScript, apresenta um problema relacionado à geração inadequada de números aleatórios. Isso ocorre porque a biblioteca não depende inteiramente de um CSPRNG fornecido pela plataforma, utilizando, em vez disso, sua própria abordagem CMAC baseada em contador. O problema surge ao inicializar a implementação CMAC com dados aleatórios “verdadeiros” na função
defaultSeedFile. Em um navegador, a biblioteca usa window.crypto.getRandomValues(), mas em um ambiente NodeJS, ela recorre a uma solução menos segura que contém um bug. O caminho alternativo usa um gerador de números aleatórios Lehmer LCG inicializado com Math.random, o que é inadequado e não explica a alta frequência de chaves duplicadas. A principal falha é a codificação incorreta da saída do Lehmer LCG, resultando na maior parte do buffer contendo zeros. Isso leva a uma chance de 97% de cada byte na semente do RNG ser 0, tornando as chaves RSA geradas relativamente fáceis de adivinhar. Um invasor poderia descriptografar mensagens confidenciais ou obter acesso autorizado a uma conta pertencente à vítima.Recomendações
Para versões do par de chaves até e incluindo a 1.0.3, atualize para uma versão que inclua a correção para o problema de geração de números aleatórios inadequada, já que a correção está disponível no commit
9596418. Se o módulo de criptografia estiver disponível, ele será usado em vez do gerador de números pseudoaleatórios. Como solução temporária, considere regenerar quaisquer chaves RSA que tenham sido geradasExploit
Correção
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Keypair