CWE-330
Use of Insufficiently Random Values
AI Translation Available
The product uses insufficiently random numbers or values in a security context that depends on unpredictable numbers.
Status
stable
Abstraction
class
Likelihood
high
Affected Platforms
Technical Details
AI Translation
Common Consequences
confidentiality
other
access control
Impacts
other
bypass protection mechanism
gain privileges or assume identity
Detection Methods
black box
automated static analysis - binary or bytecode
manual static analysis - binary or bytecode
dynamic analysis with manual results interpretation
manual static analysis - source code
automated static analysis - source code
architecture or design review
Potential Mitigations
Phases:
architecture and design
implementation
requirements
Descriptions:
•
Consider a PRNG that re-seeds itself as needed from high quality pseudo-random output sources, such as hardware devices.
•
Use a well-vetted algorithm that is currently considered to be strong by experts in the field, and select well-tested implementations with adequate length seeds.
In general, if a pseudo-random number generator is not advertised as being cryptographically secure, then it is probably a statistical PRNG and should not be used in security-sensitive contexts.
Pseudo-random number generators can produce predictable numbers if the generator is known and the seed can be guessed. A 256-bit seed is a good starting point for producing a "random enough" number.
•
Use products or modules that conform to FIPS 140-2 [REF-267] to avoid obvious entropy problems. Consult FIPS 140-2 Annex C ("Approved Random Number Generators").
Functional Areas
cryptography
authentication
session management