Seeding routine uses a constant seed making the output deterministic
This defect occurs when you use standard random number generator functions that have deterministic output given a constant seed.
The checker detects this issue with the following random number generator functions:
C Standard Library functions such as
srand,
srandom and
initstate
OpenSSL functions such as RAND_seed
and RAND_add
C++ Standard Library functions such as
std::linear_congruential_engine<>::seed()
and
std::mersenne_twister_engine<>::seed()
(and also the constructors of these class
templates)
With constant seeds, random number generator functions produce the same output every time your program is run. A hacker can disrupt your program if they know how your program behaves.
Use a different random standard function or use a nonconstant seed.
Some standard random routines are inherently cryptographically weak, and should not be used for security purposes.
| Group: Security |
| Language: C | C++ |
| Default: Off |
Command-Line Syntax: RAND_SEED_CONSTANT |
| Impact: Medium |
| CWE ID: 330, 336 |
Find defects (-checkers) | Predictable random output from predictable seed | Unsafe standard encryption function | Vulnerable pseudo-random number generator