Module cwe_checker_lib::checkers::cwe_332
source · Expand description
This module implements a check for CWE-332: Insufficient Entropy in PRNG.
This can happen, for instance, if the PRNG is not seeded. A classical example would be calling rand without srand. This could lead to predictable random numbers and could, for example, weaken crypto functionality.
See https://cwe.mitre.org/data/definitions/332.html for a detailed description.
How the check works
For pairs of a secure seeding function and a corresponding random number generator function
(e.g. the pair (srand, rand), configurable in config.json)
we check whether the program calls the random number generator without calling the seeding function.
False Positives
None known
False Negatives
- It is not checked whether the seeding function gets called before the random number generator function.
Structs
- The configuration struct contains pairs of symbol names, where the first name is the name of a seeding function and the second name is the name of a corresponding random number generator access function. It is assumed that a program has to call the seeding function first to ensure that the RNG does not generate predictable random numbers.
Statics
- The module name and version
Functions
- Run the CWE check. See the module-level description for more information.