CyberSecBulletin

Predictable Seed in Pseudo-Random Number Generator (PRNG)

CWE-337

A Pseudo-Random Number Generator (PRNG) is initialized from a predictable seed, such as the process ID or system time.

We track 10 vulnerabilities of this type. 100% are rated high or critical, and the average CVSS score is 8.3.

How this weakness is prevented

  • Use non-predictable inputs for seed generation.
  • Architecture and Design Requirements: Use products or modules that conform to FIPS 140-2 to avoid obvious entropy problems, or use the more recent FIPS 140-3 if possible.
  • Implementation: Use a PRNG that periodically re-seeds itself using input from high-quality sources, such as hardware devices with high entropy. However, do not re-seed too frequently, or else the entropy source might block.

Latest Predictable Seed in Pseudo-Random Number Generator (PRNG) vulnerabilities