C and C++ Binaries


BADFUNC.RANDOM.RANDOM : Use of random

Summary

A use of random() or srandom(), which do not provide sufficient randomness for secure applications.

Properties

Class Name Use of random
Significance security
Mnemonic BADFUNC.RANDOM.RANDOM
Categories
CWE CWE:327 Use of a Broken or Risky Cryptographic Algorithm
  CWE:332 Insufficient Entropy in PRNG
  CWE:334 Small Space of Random Values
  CWE:338 Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG)
  CWE:676 Use of Potentially Dangerous Function
DISA-6r1 DISA-6r1:V-222397 The application must implement cryptographic mechanisms to protect the integrity of remote access sessions.
  DISA-6r1:V-222570 The application must utilize FIPS-validated cryptographic modules when signing application components.
  DISA-6r1:V-222571 The application must utilize FIPS-validated cryptographic modules when generating cryptographic hashes.
  DISA-6r1:V-222572 The application must utilize FIPS-validated cryptographic modules when protecting unclassified information that requires cryptographic protection.
  DISA-6r1:V-222583 The application must use the Federal Information Processing Standard (FIPS) 140-2-validated cryptographic modules and random number generator if the application implements encryption, key exchange, digital signature, and hash functionality.
DISA-5r3 DISA-5r3:V-69259 The application must implement cryptographic mechanisms to protect the integrity of remote access sessions.
  DISA-5r3:V-70191 The application must utilize FIPS-validated cryptographic modules when signing application components.
  DISA-5r3:V-70193 The application must utilize FIPS-validated cryptographic modules when generating cryptographic hashes.
  DISA-5r3:V-70195 The application must utilize FIPS-validated cryptographic modules when protecting unclassified information that requires cryptographic protection.
  DISA-5r3:V-70217 The application must use the Federal Information Processing Standard (FIPS) 140-2-validated cryptographic modules and random number generator if the application implements encryption, key exchange, digital signature, and hash functionality.
DISA-4r3 DISA-4r3:V-69259 The application must implement cryptographic mechanisms to protect the integrity of remote access sessions.
  DISA-4r3:V-70191 The application must utilize FIPS-validated cryptographic modules when signing application components.
  DISA-4r3:V-70193 The application must utilize FIPS-validated cryptographic modules when generating cryptographic hashes.
  DISA-4r3:V-70195 The application must utilize FIPS-validated cryptographic modules when protecting unclassified information that requires cryptographic protection.
  DISA-4r3:V-70217 The application must use the Federal Information Processing Standard (FIPS) 140-2-validated cryptographic modules and random number generator if the application implements encryption, key exchange, digital signature, and hash functionality.
DISA-3r10 DISA-3r10:V-6137 The designer will ensure the application uses the Federal Information Processing Standard (FIPS) 140-2 validated cryptographic modules and random number generator if the application implements encryption, key exchange, digital signature, and hash functionality.
BSI BSI:MetaRule  
OWASP-2017 OWASP-2017:A9 Using components with known vulnerabilities
OWASP-2021 OWASP-2021:A6 Vulnerable and outdated components
Availability Available for C and C++.
Enabling Checks for this warning class are disabled by default. To enable them, add the following WARNING_FILTER rule to the project configuration file.
WARNING_FILTER += allow class="Use of random"
To enable all BSI-related classes, including all BSI-specific BADFUNC classes, use the bsi configuration preset.

Resolution

Use a cryptographically secure random generator, and ensure that it is seeded with a truly random value.

Relevant Configuration File Parameters

This class is implemented using a BAD_FUNCTION_* rule set in the general template configuration file.

The following configuration file parameters affect checks for this warning class.