Umbra Wiki weakness weakness/CWE-336
Back to wiki

CWE-336 — Same Seed in Pseudo-Random Number Generator (PRNG)

provenance: imported · CWE: CWE-336

CWE-336: Same Seed in Pseudo-Random Number Generator (PRNG)

MITRE CWE weakness

Kind Weakness
Abstraction Variant
Status Draft
Likelihood of exploit

Description

A Pseudo-Random Number Generator (PRNG) uses the same seed each time the product is initialized.

Given the deterministic nature of PRNGs, using the same seed for each initialization will lead to the same output in the same order. If an attacker can guess (or knows) the seed, then the attacker may be able to determine the random numbers that will be produced from the PRNG.

Common consequences

  • Other, Access Control: Other, Bypass Protection Mechanism

Mitigations

Architecture and Design — Do not reuse PRNG seeds. Consider a PRNG that periodically re-seeds itself as needed from a high quality pseudo-random output, such as hardware devices.

Architecture and Design — Use products or modules that conform to FIPS 140-2 [REF-267] to avoid obvious entropy problems, or use the more recent FIPS 140-3 [REF-1192] if possible.

References

  • CWE page: https://cwe.mitre.org/data/definitions/336.html
  • CWE list: https://cwe.mitre.org/data/index.html