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

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 testing requirements
Descriptions:
• Consider a PRNG that re-seeds itself as needed from high quality pseudo-random output sources, such as hardware devices.
• 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").
• 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 automated static analysis tools that target this type of weakness. Many modern techniques use data flow analysis to minimize the number of false positives. This is not a perfect solution, since 100% accuracy and coverage are not feasible.
• Use tools and techniques that require manual (human) analysis, such as penetration testing, threat modeling, and interactive tools that allow the tester to record and modify an active session. These may be more effective than strictly automated techniques. This is especially the case with weaknesses that are related to design and business rules.

Functional Areas

cryptography authentication session management