JavaScript is not currently enabled, but is required for full CodeSonar manual search and browse functionality.

If you are viewing this file in your hub's Web GUI, enable JavaScript in your browser: you will also need it for GUI functionality.

If you opened this file directly from disk, your browser may be directly suppressing JavaScript functionality: certain browsers perform this suppression on local files (but not files delivered by web servers) for security reasons.

CodeSonar® 9.2p0 CONFIDENTIAL CodeSecure Inc
C and C++
Binaries


BADFUNC.WEAKCRYPTO : Weak Cryptography

Summary

A use of one of the following functions, which are cryptographically weak and thus should not be relied on for secure applications..

DES family (checking does not treat DES_ prefix on function names as case-sensitive).

MD5 family

See also Use of crypt.

Properties

Class Name Weak Cryptography
Significance security
Mnemonic BADFUNC.WEAKCRYPTO
Categories
CWE CWE:326 Inadequate Encryption Strength
  CWE:327 Use of a Broken or Risky Cryptographic Algorithm
  CWE:330 Use of Insufficiently Random Values
  CWE:338 Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG)
  CWE:676 Use of Potentially Dangerous Function
CERT-C CERT-C:MSC25-C Do not use insecure or weak cryptographic algorithms
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-6r1:V-222589 The application must use appropriate cryptography in order to protect stored DoD information when required by the information owner or DoD policy.
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-5r3:V-70229 The application must use appropriate cryptography in order to protect stored DoD information when required by the information owner or DoD policy.
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-4r3:V-70229 The application must use appropriate cryptography in order to protect stored DoD information when required by the information owner or DoD policy.
OWASP-2017 OWASP-2017:A2 Broken authentication
  OWASP-2017:A3 Sensitive data exposure
  OWASP-2017:A5 Broken access control
  OWASP-2017:A9 Using components with known vulnerabilities
OWASP-2021 OWASP-2021:A1 Broken access control
  OWASP-2021:A2 Cryptographic failures
  OWASP-2021:A4 Insecure design
  OWASP-2021:A6 Vulnerable and outdated components
  OWASP-2021:A7 Identification and authorization failures
OWASP-2025 OWASP-2025:A01 Broken Access Control
  OWASP-2025:A03 Software Supply Chain Failures
  OWASP-2025:A04 Cryptographic Failures
  OWASP-2025:A06 Insecure Design
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="Weak Cryptography"

Example

#include <openssl/md2.h>

void weakcrypto(MD2_CTX *ctx){
  if (MD2_Init(ctx)){  /* 'Weak Cryptography' warning issued here */
    /* ... */
  }
  /* ... */
}

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.

 

To report problems with this documentation, please visit https://support.codesecure.com/.