Weaknesses of type CWE-335
21 resultsUso incorreto de sementes em gerador de números pseudoaleatórios
A fraqueza ocorre quando a semente (seed) de um PRNG é escolhida de forma previsível ou reutilizada, comprometendo a aleatoriedade dos números gerados. Um atacante que consegue prever ou reproduzir a semente consegue também prever toda a sequência de números 'aleatórios', invalidando a segurança de criptografia, tokens, IDs de sessão e outros mecanismos que dependem dessa aleatoriedade.
Um aplicativo usa a hora do sistema (que é pública) como semente para gerar um token de sessão, ou reutiliza a mesma semente em múltiplas execuções. Um atacante que sabe quando a sessão foi criada consegue gerar o mesmo token sem autenticação legítima.
Use uma fonte de aleatoriedade criptograficamente segura (como /dev/urandom no Linux ou SecureRandom em Java) para gerar sementes, nunca reutilize a mesma semente, e evite usar dados previsíveis (hora, IDs sequenciais) como sementes. Prefira APIs de alto nível que abstraem a gestão de sementes.