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

VetorAV: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 geradas

Exploit

Correção

Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾

Enumeração de Fraquezas

Identificadores relacionados

CVE-2021-41117
GHSA-3F99-HVG4-QJWJ

Produtos afetados

Keypair