Weaknesses of type CWE-339
2 resultsEspaço de sementes pequeno em gerador de números pseudoaleatórios
A fraqueza ocorre quando um gerador de números pseudoaleatórios (PRNG) é inicializado com uma sementa (seed) cujo espaço de possíveis valores é muito limitado. Isso reduz drasticamente a quantidade de sequências aleatórias possíveis, permitindo que um atacante adivinhe ou recrie a sequência com força bruta, comprometendo a segurança de operações que dependem de aleatoriedade (tokens, chaves, IVs).
Um sistema de autenticação gera tokens de sessão usando um PRNG inicializado com a hora atual em segundos como sementa. Como há apenas 86.400 valores possíveis por dia, um atacante precisa testar no máximo 86.400 combinações para forjar um token válido, em vez de enfrentar a complexidade esperada do algoritmo.
Use sempre um PRNG criptograficamente seguro (como /dev/urandom, secrets em Python ou java.security.SecureRandom) inicializado com entropia suficiente do sistema operacional. Nunca utilize sementas derivadas de dados previsíveis como timestamp, PID ou combinações simples; a sementa deve ter pelo menos 128 bits de entropia verdadeira.