CWE IDs: C and C++

This mapping is based on the latest version of CWE.

ID Checker name and description
CWE-20: Improper Input Validation

ABV.TAINTED  Buffer Overflow from Unvalidated Input

NNTS.MUST  Buffer Overflow - Non-null Terminated String

NNTS.TAINTED  Unvalidated User Input Causing Buffer Overflow - Non-Null Terminated String

SV.CODE_INJECTION.SHELL_EXEC  Command Injection into Shell Execution

SV.TAINTED.ALLOC_SIZE  Use of Unvalidated Integer in Memory Allocation

SV.TAINTED.BINOP  Use of Unvalidated Integer in Binary Operation

SV.TAINTED.CALL.BINOP  Use of Unvalidated Integer in Binary Operation

SV.TAINTED.CALL.DEREF  Dereference Of An Unvalidated Pointer

SV.TAINTED.CALL.INDEX_ACCESS  Use of Unvalidated Integer as Array Index by Function Call

SV.TAINTED.CALL.LOOP_BOUND  Use of Unvalidated Integer in Loop Condition through a Function Call

SV.TAINTED.DEREF  Dereference Of An Unvalidated Pointer

SV.TAINTED.FMTSTR  Use of Unvalidated Data in a Format String

SV.TAINTED.INDEX_ACCESS  Use of Unvalidated Integer as Array Index

SV.TAINTED.INJECTION  Command Injection

SV.TAINTED.LOOP_BOUND  Use of Unvalidated Integer in Loop Condition

SV.TAINTED.PATH_TRAVERSAL  Use of Unvalidated Data in a Path Traversal

SV.TAINTED.SECURITY_DECISION  Security Decision

CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

SV.DLLPRELOAD.NONABSOLUTE.DLL  Potential DLL-preload hijack vector

SV.DLLPRELOAD.NONABSOLUTE.EXE  Potential process injection vector

SV.DLLPRELOAD.SEARCHPATH  Do not use SearchPath to find DLLs

SV.TAINTED.PATH_TRAVERSAL  Use of Unvalidated Data in a Path Traversal

CWE-23: Relative Path Traversal

SV.DLLPRELOAD.NONABSOLUTE.DLL  Potential DLL-preload hijack vector

SV.DLLPRELOAD.NONABSOLUTE.EXE  Potential process injection vector

SV.DLLPRELOAD.SEARCHPATH  Do not use SearchPath to find DLLs

CWE-73: External Control of File Name or Path

SV.DLLPRELOAD.NONABSOLUTE.DLL  Potential DLL-preload hijack vector

SV.DLLPRELOAD.NONABSOLUTE.EXE  Potential process injection vector

SV.DLLPRELOAD.SEARCHPATH  Do not use SearchPath to find DLLs

CWE-77: Improper Neutralization of Special Elements used in a Command ('Command Injection')

SV.CODE_INJECTION.SHELL_EXEC  Command Injection into Shell Execution

SV.TAINTED.INJECTION  Command Injection

CWE-78: Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')

SV.CODE_INJECTION.SHELL_EXEC  Command Injection into Shell Execution

SV.TAINTED.INJECTION  Command Injection

CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

SV.TAINTED.XSS.REFLECTED  Cross-site Scripting Vulnerability

CWE-80: Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS)

SV.TAINTED.XSS.REFLECTED  Cross-site Scripting Vulnerability

CWE-88: Improper Neutralization of Argument Delimiters in a Command ('Argument Injection')

SV.CODE_INJECTION.SHELL_EXEC  Command Injection into Shell Execution

SV.TAINTED.INJECTION  Command Injection

CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')

CXX.SQL.INJECT  SQL Injection

CWE-94: Improper Control of Generation of Code ('Code Injection')

SV.CODE_INJECTION.SHELL_EXEC  Command Injection into Shell Execution

SV.TAINTED.INJECTION  Command Injection

CWE-99: Improper Control of Resource Identifiers ('Resource Injection')

ABV.TAINTED  Buffer Overflow from Unvalidated Input

SV.CODE_INJECTION.SHELL_EXEC  Command Injection into Shell Execution

SV.TAINTED.INJECTION  Command Injection

SV.TAINTED.PATH_TRAVERSAL  Use of Unvalidated Data in a Path Traversal

CWE-114: Process Control

SV.DLLPRELOAD.NONABSOLUTE.DLL  Potential DLL-preload hijack vector

SV.DLLPRELOAD.NONABSOLUTE.EXE  Potential process injection vector

SV.DLLPRELOAD.SEARCHPATH  Do not use SearchPath to find DLLs

CWE-119: Improper Restriction of Operations within the Bounds of a Memory Buffer

ABV.ANY_SIZE_ARRAY  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

ABV.ITERATOR  Buffer Overflow - Array Index may be out of Bounds

ABV.MEMBER  Buffer Overflow - Array Index Out of Bounds

ABV.NON_ARRAY  Non-array object is used as an array

ABV.STACK  Buffer Overflow - Local Array Index Out of Bounds

ABV.TAINTED  Buffer Overflow from Unvalidated Input

ABV.UNICODE.BOUND_MAP  Buffer overflow in mapping character function

ABV.UNICODE.FAILED_MAP  Mapping function failed

ABV.UNICODE.NNTS_MAP  Buffer overflow in mapping character function

ABV.UNICODE.SELF_MAP  Mapping function failed

ABV.UNKNOWN_SIZE  Buffer Overflow - Array Index Out of Bounds

CXX.ITER.END.BEGIN  Iterator representing end of the range precedes start of range

CXX.SUSPICIOUS_INDEX_CHECK  Suspicious use of index after boundary check

CXX.SUSPICIOUS_INDEX_CHECK.CALL  Suspicious use of index in a function call after a boundary check

CXX.SUSPICIOUS_INDEX_CHECK.ZERO  Suspicious use of index after index check for zero

ITER.ADVANCE.NONADJACENT  Advancing iterator by a distance of more than 1

ITER.CONTAINER.MODIFIED  Use of invalid iterator

ITER.END.OUTPARAM.MIGHT  Use of 'end' as an output iterator

ITER.END.OUTPARAM.MUST  Use of 'end' as an output iterator

ITER.INAPPROPRIATE  Use of iterator with inappropriate container object

ITER.INAPPROPRIATE.MULTIPLE  Use of iterator with inappropriate container object

NNTS.MIGHT  Buffer Overflow - Non-null Terminated String

NNTS.MUST  Buffer Overflow - Non-null Terminated String

NNTS.TAINTED  Unvalidated User Input Causing Buffer Overflow - Non-Null Terminated String

RABV.CHECK  Suspicious use of index before boundary check

RN.INDEX  Suspicious use of index before negative check

SV.FMT_STR.BAD_SCAN_FORMAT  Input format specifier error

SV.STRBO.BOUND_SPRINTF  Buffer Overflow in Bound sprintf

SV.STRBO.UNBOUND_SPRINTF  Buffer Overflow in Unbound sprintf

SV.UNBOUND_STRING_INPUT.CIN  Usage of cin for unbounded string input

SV.UNBOUND_STRING_INPUT.FUNC  Usage of unbounded string input

CWE-120: Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

ABV.ITERATOR  Buffer Overflow - Array Index may be out of Bounds

ABV.MEMBER  Buffer Overflow - Array Index Out of Bounds

ABV.NON_ARRAY  Non-array object is used as an array

ABV.STACK  Buffer Overflow - Local Array Index Out of Bounds

NNTS.MIGHT  Buffer Overflow - Non-null Terminated String

SV.STRBO.BOUND_COPY.OVERFLOW  Buffer Overflow in Bound String Copy

SV.STRBO.UNBOUND_COPY  Buffer Overflow in Unbound String Copy

SV.UNBOUND_STRING_INPUT.CIN  Usage of cin for unbounded string input

SV.UNBOUND_STRING_INPUT.FUNC  Usage of unbounded string input

CWE-121: Stack-based Buffer Overflow

ABV.STACK  Buffer Overflow - Local Array Index Out of Bounds

ABV.TAINTED  Buffer Overflow from Unvalidated Input

CWE-122: Heap-based Buffer Overflow

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

ABV.NON_ARRAY  Non-array object is used as an array

ABV.TAINTED  Buffer Overflow from Unvalidated Input

CWE-124: Buffer Underwrite ('Buffer Underflow')

ABV.ANY_SIZE_ARRAY  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

ABV.ITERATOR  Buffer Overflow - Array Index may be out of Bounds

ABV.MEMBER  Buffer Overflow - Array Index Out of Bounds

ABV.STACK  Buffer Overflow - Local Array Index Out of Bounds

ABV.TAINTED  Buffer Overflow from Unvalidated Input

ABV.UNICODE.BOUND_MAP  Buffer overflow in mapping character function

ABV.UNICODE.FAILED_MAP  Mapping function failed

ABV.UNICODE.NNTS_MAP  Buffer overflow in mapping character function

ABV.UNICODE.SELF_MAP  Mapping function failed

ABV.UNKNOWN_SIZE  Buffer Overflow - Array Index Out of Bounds

CXX.SUSPICIOUS_INDEX_CHECK  Suspicious use of index after boundary check

CXX.SUSPICIOUS_INDEX_CHECK.CALL  Suspicious use of index in a function call after a boundary check

CXX.SUSPICIOUS_INDEX_CHECK.ZERO  Suspicious use of index after index check for zero

RABV.CHECK  Suspicious use of index before boundary check

RN.INDEX  Suspicious use of index before negative check

SV.STRBO.BOUND_SPRINTF  Buffer Overflow in Bound sprintf

SV.STRBO.UNBOUND_SPRINTF  Buffer Overflow in Unbound sprintf

CWE-125: Out-of-bounds Read

ABV.ANY_SIZE_ARRAY  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

ABV.ITERATOR  Buffer Overflow - Array Index may be out of Bounds

ABV.MEMBER  Buffer Overflow - Array Index Out of Bounds

ABV.NON_ARRAY  Non-array object is used as an array

ABV.STACK  Buffer Overflow - Local Array Index Out of Bounds

ABV.TAINTED  Buffer Overflow from Unvalidated Input

ABV.UNICODE.BOUND_MAP  Buffer overflow in mapping character function

ABV.UNICODE.FAILED_MAP  Mapping function failed

ABV.UNICODE.NNTS_MAP  Buffer overflow in mapping character function

ABV.UNICODE.SELF_MAP  Mapping function failed

ABV.UNKNOWN_SIZE  Buffer Overflow - Array Index Out of Bounds

CXX.ITER.END.BEGIN  Iterator representing end of the range precedes start of range

CXX.SUSPICIOUS_INDEX_CHECK  Suspicious use of index after boundary check

CXX.SUSPICIOUS_INDEX_CHECK.CALL  Suspicious use of index in a function call after a boundary check

CXX.SUSPICIOUS_INDEX_CHECK.ZERO  Suspicious use of index after index check for zero

ITER.ADVANCE.NONADJACENT  Advancing iterator by a distance of more than 1

ITER.CONTAINER.MODIFIED  Use of invalid iterator

ITER.END.OUTPARAM.MIGHT  Use of 'end' as an output iterator

ITER.END.OUTPARAM.MUST  Use of 'end' as an output iterator

ITER.INAPPROPRIATE  Use of iterator with inappropriate container object

ITER.INAPPROPRIATE.MULTIPLE  Use of iterator with inappropriate container object

NNTS.MIGHT  Buffer Overflow - Non-null Terminated String

NNTS.MUST  Buffer Overflow - Non-null Terminated String

NNTS.TAINTED  Unvalidated User Input Causing Buffer Overflow - Non-Null Terminated String

RABV.CHECK  Suspicious use of index before boundary check

RN.INDEX  Suspicious use of index before negative check

SV.FMT_STR.BAD_SCAN_FORMAT  Input format specifier error

SV.STRBO.BOUND_SPRINTF  Buffer Overflow in Bound sprintf

SV.STRBO.UNBOUND_SPRINTF  Buffer Overflow in Unbound sprintf

SV.UNBOUND_STRING_INPUT.CIN  Usage of cin for unbounded string input

SV.UNBOUND_STRING_INPUT.FUNC  Usage of unbounded string input

CWE-126: Buffer Over-read

SV.STRBO.BOUND_COPY.UNTERM  Possible Buffer Overflow in Following String Operations

CWE-127: Buffer Under-read

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

CWE-129: Improper Validation of Array Index

ABV.TAINTED  Buffer Overflow from Unvalidated Input

SV.TAINTED.CALL.INDEX_ACCESS  Use of Unvalidated Integer as Array Index by Function Call

SV.TAINTED.INDEX_ACCESS  Use of Unvalidated Integer as Array Index

CWE-131: Incorrect Calculation of Buffer Size

CXX.SIZEOF.CSTRING  Use of sizeof on char* may be misleading

INCORRECT.ALLOC_SIZE  Incorrect Allocation Size

CWE-134: Use of Externally-Controlled Format String

SV.FMTSTR.GENERIC  Format String Vulnerability

SV.TAINTED.FMTSTR  Use of Unvalidated Data in a Format String

CWE-135: Incorrect Calculation of Multi-Byte String Length

SV.FMT_STR.BAD_SCAN_FORMAT  Input format specifier error

CWE-170: Improper Null Termination

NNTS.MIGHT  Buffer Overflow - Non-null Terminated String

NNTS.MUST  Buffer Overflow - Non-null Terminated String

NNTS.TAINTED  Unvalidated User Input Causing Buffer Overflow - Non-Null Terminated String

SV.STRBO.BOUND_COPY.UNTERM  Possible Buffer Overflow in Following String Operations

CWE-176: Improper Handling of Unicode Encoding

ABV.UNICODE.BOUND_MAP  Buffer overflow in mapping character function

ABV.UNICODE.FAILED_MAP  Mapping function failed

ABV.UNICODE.NNTS_MAP  Buffer overflow in mapping character function

ABV.UNICODE.SELF_MAP  Mapping function failed

CWE-190: Integer Overflow or Wraparound

NUM.OVERFLOW  Possible Overflow

NUM.OVERFLOW.DF  Possible numeric overflow or wraparound

SV.TAINTED.BINOP  Use of Unvalidated Integer in Binary Operation

SV.TAINTED.CALL.BINOP  Use of Unvalidated Integer in Binary Operation

CWE-192: Integer Coercion Error

MISRA.CAST.INT  Non-trivial integer expression is cast to a wider type, or type with a different signedness

MISRA.CAST.UNSIGNED_BITS  The result of bitwise operation on unsigned char or short is not cast back to original type

MISRA.UMINUS.UNSIGNED  Operand of unary minus is unsigned

PRECISION.LOSS  Loss of Precision

PRECISION.LOSS.CALL  Loss of Precision during function call

PRECISION.LOSS.INIT  Loss of Precision during initialization

CWE-193: Off-by-one Error

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

SV.STRBO.BOUND_COPY.UNTERM  Possible Buffer Overflow in Following String Operations

CWE-195: Signed to Unsigned Conversion Error

MISRA.CONV.INT.SIGN  Implicit integral conversion changes signedness

MISRA.CVALUE.IMPL.CAST.CPP  The value of an expression implicitly converted to a different type

CWE-196: Unsigned to Signed Conversion Error

MISRA.CAST.INT.SIGN  Non-trivial integral expression is cast to type with different signedness

MISRA.CONV.INT.SIGN  Implicit integral conversion changes signedness

CWE-197: Numeric Truncation Error

MISRA.CAST.INT  Non-trivial integer expression is cast to a wider type, or type with a different signedness

MISRA.CAST.UNSIGNED_BITS  The result of bitwise operation on unsigned char or short is not cast back to original type

MISRA.UMINUS.UNSIGNED  Operand of unary minus is unsigned

PRECISION.LOSS  Loss of Precision

PRECISION.LOSS.CALL  Loss of Precision during function call

PRECISION.LOSS.INIT  Loss of Precision during initialization

CWE-200: Exposure of Sensitive Information to an Unauthorized Actor

SPECTRE.VARIANT1  Potential exploit of speculative execution

CWE-203: Observable Discrepancy

SPECTRE.VARIANT1  Potential exploit of speculative execution

CWE-242: Use of Inherently Dangerous Function

SV.FIU.PROCESS_VARIANTS  Use of Dangerous Process Creation

SV.PIPE.VAR  Potential pipe hijacking

SV.UNBOUND_STRING_INPUT.CIN  Usage of cin for unbounded string input

SV.UNBOUND_STRING_INPUT.FUNC  Usage of unbounded string input

SV.USAGERULES.PROCESS_VARIANTS  Use of Dangerous Process Creation Function

CWE-248: Uncaught Exception

AUTOSAR.EXCPT.NOEXCPT_THROW  If a function is declared to be noexcept, noexcept(true) or noexcept(<true condition>), then it shall not exit with an exception

MISRA.DTOR.THROW  Throw in destructor

CWE-250: Execution with Unnecessary Privileges

SV.FIU.PROCESS_VARIANTS  Use of Dangerous Process Creation

SV.USAGERULES.PERMISSIONS  Use of Privilege Elevation

SV.USAGERULES.PROCESS_VARIANTS  Use of Dangerous Process Creation Function

CWE-251: Often Misused: String Management

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

CWE-252: Unchecked Return Value

SV.RVT.RETVAL_NOTTESTED  Ignored Return Value

CWE-253: Incorrect Check of Function Return Value

SV.RVT.RETVAL_NOTTESTED  Ignored Return Value

CWE-256: Plaintext Storage of a Password

CXX.SV.PWD.PLAIN  Attempt to set password using a plain string

CXX.SV.PWD.PLAIN.LENGTH  Attempt to set password with a length less than 15 characters

CXX.SV.PWD.PLAIN.LENGTH.ZERO  Attempt to set password with a length of zero characters

CWE-257: Storing a Password in a Recoverable Format

CXX.SV.PWD.PLAIN  Attempt to set password using a plain string

CXX.SV.PWD.PLAIN.LENGTH  Attempt to set password with a length less than 15 characters

CXX.SV.PWD.PLAIN.LENGTH.ZERO  Attempt to set password with a length of zero characters

CWE-259: Use of Hard-coded Password

CXX.SV.PWD.PLAIN  Attempt to set password using a plain string

CXX.SV.PWD.PLAIN.LENGTH  Attempt to set password with a length less than 15 characters

CXX.SV.PWD.PLAIN.LENGTH.ZERO  Attempt to set password with a length of zero characters

HCC  Use of hardcoded credentials

HCC.PWD  Use of a hardcoded password

CWE-260: Password in Configuration File

HCC  Use of hardcoded credentials

HCC.PWD  Use of a hardcoded password

CWE-261: Weak Encoding for Password

RCA  Risky cryptographic algorithm used

SV.WEAK_CRYPTO.WEAK_HASH  Weak Hash Function

CWE-266: Incorrect Privilege Assignment

SV.USAGERULES.PERMISSIONS  Use of Privilege Elevation

CWE-267: Privilege Defined With Unsafe Actions

SV.FIU.PROCESS_VARIANTS  Use of Dangerous Process Creation

SV.USAGERULES.PROCESS_VARIANTS  Use of Dangerous Process Creation Function

CWE-269: Improper Privilege Management

SV.USAGERULES.PERMISSIONS  Use of Privilege Elevation

CWE-272: Least Privilege Violation

SV.BRM.HKEY_LOCAL_MACHINE  HKEY_LOCAL_MACHINE Used as 'hkey' Parameter for Registry Manipulation Function

CWE-273: Improper Check for Dropped Privileges

SV.FIU.PROCESS_VARIANTS  Use of Dangerous Process Creation

SV.USAGERULES.PERMISSIONS  Use of Privilege Elevation

CWE-276: Incorrect Default Permissions

SV.USAGERULES.PROCESS_VARIANTS  Use of Dangerous Process Creation Function

CWE-277: Insecure Inherited Permissions

SV.USAGERULES.PERMISSIONS  Use of Privilege Elevation

CWE-279: Incorrect Execution-Assigned Permissions

SV.USAGERULES.PERMISSIONS  Use of Privilege Elevation

CWE-283: Unverified Ownership

SV.USAGERULES.PERMISSIONS  Use of Privilege Elevation

CWE-284: Improper Access Control

SV.LPP.CONST  Use of Insecure Macro for Dangerous Functions

SV.LPP.VAR  Use of Insecure Parameter for Dangerous Functions

CWE-287: Improper Authentication

CXX.SV.PWD.PLAIN  Attempt to set password using a plain string

CXX.SV.PWD.PLAIN.LENGTH  Attempt to set password with a length less than 15 characters

CXX.SV.PWD.PLAIN.LENGTH.ZERO  Attempt to set password with a length of zero characters

HCC  Use of hardcoded credentials

HCC.PWD  Use of a hardcoded password

SV.WEAK_CRYPTO.WEAK_HASH  Weak Hash Function

CWE-290: Authentication Bypass by Spoofing

SV.WEAK_CRYPTO.WEAK_HASH  Weak Hash Function

CWE-307: Improper Restriction of Excessive Authentication Attempts

CXX.SV.PWD_INPUT.REVIEW  Password authentication should be checked against brute force attacks

CWE-309: Use of Password System for Primary Authentication

CXX.SV.PWD_INPUT.REVIEW  Password authentication should be checked against brute force attacks

SV.WEAK_CRYPTO.WEAK_HASH  Weak Hash Function

CWE-311: Missing Encryption of Sensitive Data

CXX.SV.PRIVATE_KEY.EMPTY_PASSWD  Attempt to serialize private key in an unauthorized way

CXX.SV.PRIVATE_KEY.UNENCRYPTED  Attempt to serialize private key in an unauthorized way

CWE-312: Cleartext Storage of Sensitive Information

CXX.SV.PRIVATE_KEY.EMPTY_PASSWD  Attempt to serialize private key in an unauthorized way

CXX.SV.PRIVATE_KEY.UNENCRYPTED  Attempt to serialize private key in an unauthorized way

CWE-321: Use of Hard-coded Cryptographic Key

HCC  Use of hardcoded credentials

HCC.PWD  Use of a hardcoded password

CWE-326: Inadequate Encryption Strength

SV.USAGERULES.SPOOFING  Use of Function Susceptible to Spoofing

CWE-327: Use of a Broken or Risky Cryptographic Algorithm

RCA  Risky cryptographic algorithm used

SV.WEAK_CRYPTO.WEAK_HASH  Weak Hash Function

CWE-328: Use of Weak Hash

RCA  Risky cryptographic algorithm used

SV.WEAK_CRYPTO.WEAK_HASH  Weak Hash Function

CWE-331: Insufficient Entropy

RCA  Risky cryptographic algorithm used

SV.WEAK_CRYPTO.WEAK_HASH  Weak Hash Function

CWE-335: Incorrect Usage of Seeds in Pseudo-Random Number Generator (PRNG)

RCA  Risky cryptographic algorithm used

CWE-338: Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG)

RCA  Risky cryptographic algorithm used

CWE-342: Predictable Exact Value from Previous Values

RCA  Risky cryptographic algorithm used

CWE-343: Predictable Value Range from Previous Values

RCA  Risky cryptographic algorithm used

CWE-362: Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')

CERT.CONC.ATOMIC_TWICE_EXPR  Do not refer to an atomic variable twice in an expression

CERT.CONC.LIB_FUNC_USE  Avoid race conditions when using library functions

CERT.CONC.MUTEX.DESTROY_WHILE_LOCKED  Do not destroy a mutex while it is locked

CONC.DBL_LOCK  Double Lock

CONC.DBL_UNLOCK  Double Unlock

CONC.DL  Deadlock

CONC.NO_LOCK  Missing lock for variable

SV.TOCTOU.FILE_ACCESS  Time of Creation/Time of Use Race condition in File Access

CWE-367: Time-of-check Time-of-use (TOCTOU) Race Condition

SV.TOCTOU.FILE_ACCESS  Time of Creation/Time of Use Race condition in File Access

CWE-369: Divide By Zero

DBZ.CONST  Division by a zero constant occurs

DBZ.CONST.CALL  The value '0' is passed to function that can use this value as divisor

DBZ.GENERAL  Division by zero might occur

DBZ.GENERAL.FLOAT  Division by floating-point zero might occur

DBZ.ITERATOR  Division by zero might occur in a loop iterator

DBZ.ITERATOR.CALL  Division by zero might occur in a function call

DBZ.ITERATOR.FLOAT  Division by zero might occur in a loop iterator

CWE-377: Insecure Temporary File

SV.PCC.CONST  Insecure (Constant) Temporary File Name in Call to CreateFile

SV.PCC.INVALID_TEMP_PATH  Insecure Temporary File Name in Call to CreateFile

SV.PCC.MISSING_TEMP_CALLS.MUST  Missing Secure Temporary File Names in Call to CreateFile

SV.PCC.MISSING_TEMP_FILENAME  Missing Temporary File Name in Call to CreateFile

SV.PCC.MODIFIED_BEFORE_CREATE  Modification of Temporary File Name before Call to CreateFile

CWE-379: Creation of Temporary File in Directory with Incorrect Permissions

SV.PCC.CONST  Insecure (Constant) Temporary File Name in Call to CreateFile

SV.PCC.INVALID_TEMP_PATH  Insecure Temporary File Name in Call to CreateFile

SV.PCC.MISSING_TEMP_CALLS.MUST  Missing Secure Temporary File Names in Call to CreateFile

SV.PCC.MISSING_TEMP_FILENAME  Missing Temporary File Name in Call to CreateFile

SV.PCC.MODIFIED_BEFORE_CREATE  Modification of Temporary File Name before Call to CreateFile

CWE-390: Detection of Error Condition Without Action

MISRA.CATCH.BY_VALUE  Exception object of class type is caught by value

MISRA.CATCH.NOALL  Ellipsis exception handler is not the last one in a try-catch block

MISRA.THROW.PTR  Exception object is a pointer

SV.RVT.RETVAL_NOTTESTED  Ignored Return Value

CWE-391: Unchecked Error Condition

SV.RVT.RETVAL_NOTTESTED  Ignored Return Value

CWE-394: Unexpected Status Code or Return Value

RETVOID.GEN  Non-void function returns void value

RETVOID.IMPLICIT  Implicitly int function returns void value

VOIDRET  Void function returns value

CWE-400: Uncontrolled Resource Consumption

CL.MLK  Memory Leak - in destructor

CL.MLK.ASSIGN  Memory Leak - in assignment operator

CL.MLK.VIRTUAL  Memory Leak - possible in destructor

FMM.MIGHT  Freeing Mismatched Memory - possible

FMM.MUST  Freeing Mismatched Memory

INFINITE_LOOP.GLOBAL  Infinite loop

INFINITE_LOOP.LOCAL  Infinite loop

INFINITE_LOOP.MACRO  Infinite loop

MLK.MIGHT  Memory Leak - possible

MLK.MUST  Memory Leak

MLK.RET.MIGHT  Memory Leak - possible

MLK.RET.MUST  Memory Leak

RH.LEAK  Resource leak

SV.CODE_INJECTION.SHELL_EXEC  Command Injection into Shell Execution

SV.TAINTED.ALLOC_SIZE  Use of Unvalidated Integer in Memory Allocation

SV.TAINTED.BINOP  Use of Unvalidated Integer in Binary Operation

SV.TAINTED.CALL.BINOP  Use of Unvalidated Integer in Binary Operation

SV.TAINTED.CALL.LOOP_BOUND  Use of Unvalidated Integer in Loop Condition through a Function Call

SV.TAINTED.INJECTION  Command Injection

SV.TAINTED.LOOP_BOUND  Use of Unvalidated Integer in Loop Condition

CWE-401: Missing Release of Memory after Effective Lifetime

CL.MLK  Memory Leak - in destructor

CL.MLK.ASSIGN  Memory Leak - in assignment operator

CL.MLK.VIRTUAL  Memory Leak - possible in destructor

MLK.MIGHT  Memory Leak - possible

MLK.MUST  Memory Leak

MLK.RET.MIGHT  Memory Leak - possible

MLK.RET.MUST  Memory Leak

CWE-403: Exposure of File Descriptor to Unintended Control Sphere ('File Descriptor Leak')

RH.LEAK  Resource leak

CWE-404: Improper Resource Shutdown or Release

CL.MLK  Memory Leak - in destructor

CL.MLK.ASSIGN  Memory Leak - in assignment operator

CL.MLK.VIRTUAL  Memory Leak - possible in destructor

FMM.MIGHT  Freeing Mismatched Memory - possible

FMM.MUST  Freeing Mismatched Memory

MLK.MIGHT  Memory Leak - possible

MLK.MUST  Memory Leak

MLK.RET.MIGHT  Memory Leak - possible

MLK.RET.MUST  Memory Leak

RH.LEAK  Resource leak

CWE-412: Unrestricted Externally Accessible Lock

CONC.DL  Deadlock

CWE-413: Improper Resource Locking

CERT.CONC.MUTEX.DESTROY_WHILE_LOCKED  Do not destroy a mutex while it is locked

CWE-415: Double Free

FNH.MIGHT  Freeing Non-Heap Memory - possible

FNH.MUST  Freeing Non-Heap Memory

FUM.GEN.MIGHT  Freeing Unallocated Memory - possible

FUM.GEN.MUST  Freeing Unallocated Memory

UFM.DEREF.MIGHT  Use of free memory (access) - possible

UFM.DEREF.MUST  Use of Freed Memory by Pointer

UFM.FFM.MIGHT  Use of free memory (double free) - possible

UFM.FFM.MUST  Freeing Freed Memory

UFM.RETURN.MIGHT  Use of freed memory (return) - possible

UFM.RETURN.MUST  Use of Freed Memory on Return

UFM.USE.MIGHT  Use of free memory - possible

UFM.USE.MUST  Use of Freed Memory

CWE-416: Use After Free

AUTOSAR.LAMBDA.REF_LIFETIME  A lambda expression object shall not outlive any of its reference-captured objects

CERT.MEM.SMART_PTR.OWNED  Multiple smart pointer owners of pointer

CERT.MEM.SMART_PTR.OWNED.THIS  The underlying resource might be already owned by a non-related smart pointer

CL.FFM.ASSIGN  Use of free memory (double free) - no operator=

CL.FFM.COPY  Use of free memory (double free) - no copy constructor

CL.SELF-ASSIGN  Use of free memory (double free) - in operator=

CL.SHALLOW.ASSIGN  Use of free memory (double free) - shallow copy in operator=

CL.SHALLOW.COPY  Use of free memory (double free) - shallow copy in copy constructor

LOCRET.ARG  Function returns address of local variable

LOCRET.GLOB  Function returns address of local variable

LOCRET.RET  Function returns address of local variable

SV.INCORRECT_RESOURCE_HANDLING.URH  Insecure Resource Handling

UFM.DEREF.MIGHT  Use of free memory (access) - possible

UFM.DEREF.MUST  Use of Freed Memory by Pointer

UFM.FFM.MIGHT  Use of free memory (double free) - possible

UFM.FFM.MUST  Freeing Freed Memory

UFM.RETURN.MIGHT  Use of freed memory (return) - possible

UFM.RETURN.MUST  Use of Freed Memory on Return

UFM.USE.MIGHT  Use of free memory - possible

UFM.USE.MUST  Use of Freed Memory

CWE-421: Race Condition During Access to Alternate Channel

SV.PIPE.CONST  Potential pipe hijacking

SV.PIPE.VAR  Potential pipe hijacking

CWE-426: Untrusted Search Path

SV.TAINTED.PATH_TRAVERSAL  Use of Unvalidated Data in a Path Traversal

CWE-457: Use of Uninitialized Variable

UNINIT.CTOR.MIGHT  Uninitialized Variable in Constructor - possible

UNINIT.CTOR.MIGHT.UNCLEAR  Uninitialized Variable in Constructor - Unclear

UNINIT.CTOR.MUST  Uninitialized Variable in Constructor

UNINIT.HEAP.MIGHT  Uninitialized Heap Use - possible

UNINIT.HEAP.MIGHT.UNCLEAR  Uninitialized Heap Use - Unclear

UNINIT.HEAP.MUST  Uninitialized Heap Use

UNINIT.STACK.MIGHT  Uninitialized Variable - possible

UNINIT.STACK.MIGHT.UNCLEAR  Uninitialized Variable - Unclear

UNINIT.STACK.MUST  Uninitialized Variable

CWE-460: Improper Cleanup on Thrown Exception

AUTOSAR.EXCPT.SPECIAL_MEMBER_THROW  All user-provided class destructors, deallocation functions, move constructors, move assignment operators and swap functions shall not exit with an exception

MISRA.DTOR.THROW  Throw in destructor

CWE-464: Addition of Data Structure Sentinel

SV.BANNED.RECOMMENDED.TOKEN  Banned recommended API: unsafe string tokenizing functions

SV.TAINTED.FMTSTR  Use of Unvalidated Data in a Format String

CWE-467: Use of sizeof() on a Pointer Type

CXX.SIZEOF.CSTRING  Use of sizeof on char* may be misleading

INCORRECT.ALLOC_SIZE  Incorrect Allocation Size

CWE-468: Incorrect Pointer Scaling

CWARN.ALIGNMENT  Incorrect pointer scaling is used

MISRA.PTR.ARITH  Pointer is used in arithmetic or array index expression

CWE-476: NULL Pointer Dereference

MISRA.LITERAL.NULL.PTR.CONST.2012  The macro NULL is the only permitted form of integer null pointer constant

NPD.CHECK.CALL.MIGHT  Pointer may be passed to function that can dereference it after it was positively checked for NULL

NPD.CHECK.CALL.MUST  Pointer will be passed to function that may dereference it after it was positively checked for NULL

NPD.CHECK.MIGHT  Pointer may be dereferenced after it was positively checked for NULL

NPD.CHECK.MUST  Pointer will be dereferenced after it was positively checked for NULL

NPD.CONST.CALL  NULL is passed to function that can dereference it

NPD.CONST.DEREF  NULL is dereferenced

NPD.FUNC.CALL.MIGHT  Result of function that may return NULL may be passed to another function that may dereference it

NPD.FUNC.CALL.MUST  Result of function that may return NULL will be passed to another function that may dereference it

NPD.FUNC.MIGHT  Result of function that can return NULL may be dereferenced

NPD.FUNC.MUST  Result of function that may return NULL will be dereferenced

NPD.GEN.CALL.MIGHT  Null pointer may be passed to function that may dereference it

NPD.GEN.CALL.MUST  Null pointer will be passed to function that may dereference it

NPD.GEN.MIGHT  Null pointer may be dereferenced

NPD.GEN.MUST  Null pointer will be dereferenced

RNPD.CALL  Suspicious dereference of pointer in function call before NULL check

RNPD.DEREF  Suspicious dereference of pointer before NULL check

CWE-478: Missing Default Case in Multiple Condition Expression

MISRA.SWITCH.WELL_FORMED.DEFAULT.2012  Every switch statement shall have a default label.

CWE-480: Use of Incorrect Operator

ASSIGCOND.CALL  Assignment in condition (call)

ASSIGCOND.GEN  Assignment in condition

EFFECT  Statement has no effect

SEMICOL  Suspiciously placed semicolon

CWE-481: Assigning instead of Comparing

ASSIGCOND.CALL  Assignment in condition (call)

ASSIGCOND.GEN  Assignment in condition

CWE-482: Comparing instead of Assigning

EFFECT  Statement has no effect

CWE-483: Incorrect Block Delimitation

EFFECT  Statement has no effect

SEMICOL  Suspiciously placed semicolon

CWE-484: Omitted Break Statement in Switch

MISRA.SWITCH.NO_BREAK  No break or throw statement at the end of switch-clause

MISRA.SWITCH.WELL_FORMED.BREAK.2012  An unconditional break statement shall terminate every switch-clause.

CWE-494: Download of Code Without Integrity Check

SV.DLLPRELOAD.NONABSOLUTE.DLL  Potential DLL-preload hijack vector

SV.DLLPRELOAD.NONABSOLUTE.EXE  Potential process injection vector

SV.DLLPRELOAD.SEARCHPATH  Do not use SearchPath to find DLLs

CWE-497: Exposure of Sensitive System Information to an Unauthorized Control Sphere

SV.STR_PAR.UNDESIRED_STRING_PARAMETER  Undesired String for File Path

CWE-521: Weak Password Requirements

CXX.SV.PWD.PLAIN.LENGTH  Attempt to set password with a length less than 15 characters

CXX.SV.PWD.PLAIN.LENGTH.ZERO  Attempt to set password with a length of zero characters

CWE-522: Insufficiently Protected Credentials

CXX.SV.PRIVATE_KEY.EMPTY_PASSWD  Attempt to serialize private key in an unauthorized way

CXX.SV.PRIVATE_KEY.UNENCRYPTED  Attempt to serialize private key in an unauthorized way

CWE-539: Use of Persistent Cookies Containing Sensitive Information

CXX.SV.PERSISTENT_COOKIE  Illegal usage of a persistent cookie

CWE-561: Dead Code

INVARIANT_CONDITION.GEN  Invariant expression in a condition

INVARIANT_CONDITION.UNREACH  Invariant expression in a condition

LA_UNUSED  Label unused

UNREACH.ENUM  Code is unreachable due to the possible value(s) of an enum

UNREACH.GEN  Unreachable code

UNREACH.RETURN  Unreachable Void Return

UNREACH.SIZEOF  Architecture-related unreachable code

VA_UNUSED.GEN  Value is Never Used after Assignment

VA_UNUSED.INIT  Value is Never Used after Initialization

CWE-562: Return of Stack Variable Address

LOCRET.ARG  Function returns address of local variable

LOCRET.GLOB  Function returns address of local variable

LOCRET.RET  Function returns address of local variable

CWE-563: Assignment to Variable without Use

LV_UNUSED.GEN  Local variable unused

CWE-570: Expression is Always False

INVARIANT_CONDITION.GEN  Invariant expression in a condition

INVARIANT_CONDITION.UNREACH  Invariant expression in a condition

CWE-571: Expression is Always True

INVARIANT_CONDITION.GEN  Invariant expression in a condition

INVARIANT_CONDITION.UNREACH  Invariant expression in a condition

CWE-590: Free of Memory not on the Heap

FNH.MIGHT  Freeing Non-Heap Memory - possible

FNH.MUST  Freeing Non-Heap Memory

FUM.GEN.MIGHT  Freeing Unallocated Memory - possible

FUM.GEN.MUST  Freeing Unallocated Memory

CWE-606: Unchecked Input for Loop Condition

SV.TAINTED.CALL.LOOP_BOUND  Use of Unvalidated Integer in Loop Condition through a Function Call

SV.TAINTED.LOOP_BOUND  Use of Unvalidated Integer in Loop Condition

CWE-611: Improper Restriction of XML External Entity Reference

CXX.SV.XXE  Attempting to resolve external entities while parsing a XML file can lead to XXE attack

CWE-614: Sensitive Cookie in HTTPS Session Without 'Secure' Attribute

CXX.SV.INSECURE_COOKIE  Insecure cookie

CWE-628: Function Call with Incorrectly Specified Arguments

MISRA.FUNC.UNMATCHED.PARAMS  Number of formal and actual parameters passed to function do not match

SV.FMT_STR.PRINT_PARAMS_WRONGNUM.FEW  Too few arguments in a print function call

SV.FMT_STR.PRINT_PARAMS_WRONGNUM.MANY  Too many arguments in a print function call

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.FEW  Too few arguments in a scan function call

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.MANY  Too many arguments in a scan function call

CWE-665: Improper Initialization

CERT.DCL.SWITCH.VAR_BEFORE_CASE  Do not declare variables inside a switch statement before the first case label

CERT.OOP.CTOR.INIT_ORDER  Write constructor member initializers in the canonical order

MISRA.CTOR.DYNAMIC  Object's dynamic type is used from the body of its constructor

MISRA.DTOR.DYNAMIC  Object's dynamic type is used from the body of its destructor

MISRA.INIT.BRACES.2012  The initializer for an aggregate or union is not enclosed in braces

UNINIT.CTOR.MIGHT  Uninitialized Variable in Constructor - possible

UNINIT.CTOR.MIGHT.UNCLEAR  Uninitialized Variable in Constructor - Unclear

UNINIT.CTOR.MUST  Uninitialized Variable in Constructor

UNINIT.HEAP.MIGHT  Uninitialized Heap Use - possible

UNINIT.HEAP.MIGHT.UNCLEAR  Uninitialized Heap Use - Unclear

UNINIT.HEAP.MUST  Uninitialized Heap Use

UNINIT.STACK.ARRAY.MIGHT  Uninitialized Array - possible

UNINIT.STACK.ARRAY.MUST  Uninitialized Array

UNINIT.STACK.ARRAY.PARTIAL.MUST  Partially Uninitialized Array

UNINIT.STACK.MIGHT  Uninitialized Variable - possible

UNINIT.STACK.MIGHT.UNCLEAR  Uninitialized Variable - Unclear

UNINIT.STACK.MUST  Uninitialized Variable

CWE-667: Improper Locking

CERT.CONC.ATOMIC_TWICE_EXPR  Do not refer to an atomic variable twice in an expression

CERT.CONC.LIB_FUNC_USE  Avoid race conditions when using library functions

CERT.CONC.MUTEX.DESTROY_WHILE_LOCKED  Do not destroy a mutex while it is locked

CERT.CONC.UNSAFE_COND_VAR  Preserve thread safety and liveness when using condition variables

CERT.CONC.WAKE_IN_LOOP  Wrap functions that can spuriously wake up in a loop

CONC.DBL_LOCK  Double Lock

CONC.DBL_UNLOCK  Double Unlock

CONC.DL  Deadlock

CONC.NO_LOCK  Missing lock for variable

MISRA.STDLIB.MUTEX.NO_LOCK.2023  Missing lock for mutex variable

CWE-672: Operation on a Resource after Expiration or Release

AUTOSAR.LAMBDA.REF_LIFETIME  A lambda expression object shall not outlive any of its reference-captured objects

CERT.MEM.SMART_PTR.OWNED  Multiple smart pointer owners of pointer

CERT.MEM.SMART_PTR.OWNED.THIS  The underlying resource might be already owned by a non-related smart pointer

CL.FFM.ASSIGN  Use of free memory (double free) - no operator=

CL.FFM.COPY  Use of free memory (double free) - no copy constructor

CL.SELF-ASSIGN  Use of free memory (double free) - in operator=

CL.SHALLOW.ASSIGN  Use of free memory (double free) - shallow copy in operator=

CL.SHALLOW.COPY  Use of free memory (double free) - shallow copy in copy constructor

LOCRET.ARG  Function returns address of local variable

LOCRET.GLOB  Function returns address of local variable

LOCRET.RET  Function returns address of local variable

SV.INCORRECT_RESOURCE_HANDLING.URH  Insecure Resource Handling

UFM.DEREF.MIGHT  Use of free memory (access) - possible

UFM.DEREF.MUST  Use of Freed Memory by Pointer

UFM.FFM.MIGHT  Use of free memory (double free) - possible

UFM.FFM.MUST  Freeing Freed Memory

UFM.RETURN.MIGHT  Use of freed memory (return) - possible

UFM.RETURN.MUST  Use of Freed Memory on Return

UFM.USE.MIGHT  Use of free memory - possible

UFM.USE.MUST  Use of Freed Memory

CWE-674: Uncontrolled Recursion

CXX.STATIC.OBJ.RECURSION  Do not reenter function during initialization of static objects

CWE-676: Use of Potentially Dangerous Function

SV.BANNED.RECOMMENDED.ALLOCA  Banned recommended API: stack allocation functions

SV.BANNED.RECOMMENDED.NUMERIC  Banned recommended API: unsafe numeric conversion functions

SV.BANNED.RECOMMENDED.OEM  Banned recommended API: OEM character page conversion functions

SV.BANNED.RECOMMENDED.PATH  Banned recommended API: unsafe path name manipulation functions

SV.BANNED.RECOMMENDED.SCANF  Banned recommended API: unsafe scanf-type functions

SV.BANNED.RECOMMENDED.SPRINTF  Banned recommended API: unsafe sprintf-type functions

SV.BANNED.RECOMMENDED.STRLEN  Banned recommended API: unsafe string length functions

SV.BANNED.RECOMMENDED.TOKEN  Banned recommended API: unsafe string tokenizing functions

SV.BANNED.RECOMMENDED.WINDOW  Banned recommended API: unsafe window functions

SV.BANNED.REQUIRED.CONCAT  Banned required API: unsafe string concatenation functions

SV.BANNED.REQUIRED.COPY  Banned required API: unsafe buffer copy functions

SV.BANNED.REQUIRED.GETS  Banned required API: unsafe stream reading functions

SV.BANNED.REQUIRED.ISBAD  Banned required API: IsBad-type functions

SV.BANNED.REQUIRED.SPRINTF  Banned required API: unsafe sprintf-type functions

CWE-681: Incorrect Conversion between Numeric Types

PRECISION.LOSS  Loss of Precision

PRECISION.LOSS.CALL  Loss of Precision during function call

PRECISION.LOSS.INIT  Loss of Precision during initialization

CWE-682: Incorrect Calculation

CWARN.ALIGNMENT  Incorrect pointer scaling is used

CWARN.BAD.PTR.ARITH  Bad pointer arithmetic

CXX.SIZEOF.CSTRING  Use of sizeof on char* may be misleading

INCORRECT.ALLOC_SIZE  Incorrect Allocation Size

MISRA.BITS.NOT_UNSIGNED  Operand of bitwise operation is not unsigned integer

MISRA.BITS.NOT_UNSIGNED.PREP  Operand of bitwise operation is not unsigned integer

MISRA.SHIFT.RANGE  Right operand of shift operation is out of range - greater or equal to max bit-length of left operand, or negative

MISRA.SIGNED_CHAR.NOT_NUMERIC  'signed char' or 'unsigned char' is used for non-numeric value

PORTING.UNSIGNEDCHAR.OVERFLOW.FALSE  Relational expression may be always false depending on 'char' type signedness

PORTING.VAR.EFFECTS  Variable used twice in one expression where one usage is subject to side-effects

CWE-686: Function Call With Incorrect Argument Type

SV.FMT_STR.BAD_SCAN_FORMAT  Input format specifier error

SV.FMT_STR.PRINT_FORMAT_MISMATCH.BAD  Incompatible type of a print function parameter

SV.FMT_STR.PRINT_FORMAT_MISMATCH.UNDESIRED  Unexpected type of a print function parameter

SV.FMT_STR.SCAN_FORMAT_MISMATCH.BAD  Incompatible type of a scan function parameter

SV.FMT_STR.SCAN_FORMAT_MISMATCH.UNDESIRED  Unexpected type of a scan function parameter

SV.FMT_STR.SCAN_IMPROP_LENGTH  Improper use of length modifier in a scan function call

SV.FMT_STR.UNKWN_FORMAT  Unknown format specifier in a print function call

SV.FMT_STR.UNKWN_FORMAT.SCAN  Unknown format specifier in a scan function call

CWE-690: Unchecked Return Value to NULL Pointer Dereference

NPD.FUNC.MIGHT  Result of function that can return NULL may be dereferenced

NPD.FUNC.MUST  Result of function that may return NULL will be dereferenced

CWE-704: Incorrect Type Conversion or Cast

AUTOSAR.CAST.CSTYLE  Traditional C-style casts shall not be used

AUTOSAR.CAST.REINTERPRET  reinterpret_cast shall not be used

MISRA.CAST.CONST  Cast operation removes const or volatile modifier from a pointer or reference

MISRA.CAST.FUNC_PTR.2012  Conversion performed between a pointer to a function and another incompatible type

MISRA.CAST.INCOMPLETE_PTR_TO_ANY.2012  Conversion performed between a pointer to an incomplete type and a different type

MISRA.CAST.OBJ_PTR_TO_INT.2012  Conversion performed between a pointer to an object and an integer type

MISRA.CAST.OBJ_PTR_TO_NON_INT.2012  A cast between a pointer to object and a non-integer arithmetic type

MISRA.CAST.OBJ_PTR_TO_OBJ_PTR.2012  Cast between a pointer to object type and a pointer to a different object type

MISRA.CAST.VOID_PTR_TO_INT.2012  Cast between a pointer to void and an arithmetic type

MISRA.CAST.VOID_PTR_TO_OBJ_PTR.2012  Conversion performed from a pointer to void to a pointer to an object

PORTING.CAST.FLTPNT  Cast of a floating point expression to a non floating point type

PORTING.CAST.PTR.FLTPNT  Cast of a pointer to a floating point expression to a non floating point type pointer

PORTING.CAST.PTR.SIZE  Attempt to cast an expression to a type of a potentially incompatible size

CWE-708: Incorrect Ownership Assignment

SV.USAGERULES.PERMISSIONS  Use of Privilege Elevation

CWE-732: Incorrect Permission Assignment for Critical Resource

SV.USAGERULES.PERMISSIONS  Use of Privilege Elevation

CWE-733: Compiler Optimization Removal or Modification of Security-critical Code

INVARIANT_CONDITION.GEN  Invariant expression in a condition

INVARIANT_CONDITION.UNREACH  Invariant expression in a condition

SPECTRE.VARIANT1  Potential exploit of speculative execution

UNREACH.GEN  Unreachable code

UNREACH.RETURN  Unreachable Void Return

CWE-754: Improper Check for Unusual or Exceptional Conditions

SV.RVT.RETVAL_NOTTESTED  Ignored Return Value

CWE-755: Improper Handling of Exceptional Conditions

MISRA.CATCH.BY_VALUE  Exception object of class type is caught by value

MISRA.CATCH.NOALL  Ellipsis exception handler is not the last one in a try-catch block

MISRA.CATCH.WRONGORD  Handler for a base exception class precedes to a handler for a derived exception class in a try-catch block

MISRA.THROW.PTR  Exception object is a pointer

CWE-762: Mismatched Memory Management Routines

FMM.MIGHT  Freeing Mismatched Memory - possible

FMM.MUST  Freeing Mismatched Memory

CWE-764: Multiple Locks of a Critical Resource

CONC.DBL_LOCK  Double Lock

CWE-765: Multiple Unlocks of a Critical Resource

CONC.DBL_UNLOCK  Double Unlock

CWE-768: Incorrect Short Circuit Evaluation

MISRA.INCR_DECR.OTHER  Increment or decrement operator is mixed with other operators in expression

MISRA.INCR_DECR.SIDEEFF.2012  A full expression containing an increment (++) or decrement (--) operator should have no other potential side effects other than that caused by the increment or decrement operator

MISRA.LOGIC.SIDEEFF  Right operand in a logical 'and' or 'or' expression contains side effects

MISRA.LOGIC.SIDEEFF.COND  Branch expression in a conditional expression contains side effects

PORTING.VAR.EFFECTS  Variable used twice in one expression where one usage is subject to side-effects

CWE-772: Missing Release of Resource after Effective Lifetime

RH.LEAK  Resource leak

CWE-783: Operator Precedence Logic Error

MISRA.EXPR.PARENS.2012  The precedence of operators within expressions should be made explicit.

MISRA.EXPR.PARENS.INSUFFICIENT  Limited dependence required for operator precedence rules in expressions

CWE-786: Access of Memory Location Before Start of Buffer

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

CWE-787: Out-of-bounds Write

ABV.ANY_SIZE_ARRAY  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

ABV.ITERATOR  Buffer Overflow - Array Index may be out of Bounds

ABV.MEMBER  Buffer Overflow - Array Index Out of Bounds

ABV.NON_ARRAY  Non-array object is used as an array

ABV.STACK  Buffer Overflow - Local Array Index Out of Bounds

ABV.TAINTED  Buffer Overflow from Unvalidated Input

ABV.UNICODE.BOUND_MAP  Buffer overflow in mapping character function

ABV.UNICODE.FAILED_MAP  Mapping function failed

ABV.UNICODE.NNTS_MAP  Buffer overflow in mapping character function

ABV.UNICODE.SELF_MAP  Mapping function failed

ABV.UNKNOWN_SIZE  Buffer Overflow - Array Index Out of Bounds

CXX.ITER.END.BEGIN  Iterator representing end of the range precedes start of range

CXX.SUSPICIOUS_INDEX_CHECK  Suspicious use of index after boundary check

CXX.SUSPICIOUS_INDEX_CHECK.CALL  Suspicious use of index in a function call after a boundary check

CXX.SUSPICIOUS_INDEX_CHECK.ZERO  Suspicious use of index after index check for zero

ITER.ADVANCE.NONADJACENT  Advancing iterator by a distance of more than 1

ITER.CONTAINER.MODIFIED  Use of invalid iterator

ITER.END.OUTPARAM.MIGHT  Use of 'end' as an output iterator

ITER.END.OUTPARAM.MUST  Use of 'end' as an output iterator

ITER.INAPPROPRIATE  Use of iterator with inappropriate container object

ITER.INAPPROPRIATE.MULTIPLE  Use of iterator with inappropriate container object

NNTS.MIGHT  Buffer Overflow - Non-null Terminated String

NNTS.MUST  Buffer Overflow - Non-null Terminated String

NNTS.TAINTED  Unvalidated User Input Causing Buffer Overflow - Non-Null Terminated String

RABV.CHECK  Suspicious use of index before boundary check

RN.INDEX  Suspicious use of index before negative check

SV.FMT_STR.BAD_SCAN_FORMAT  Input format specifier error

SV.STRBO.BOUND_SPRINTF  Buffer Overflow in Bound sprintf

SV.STRBO.UNBOUND_SPRINTF  Buffer Overflow in Unbound sprintf

SV.UNBOUND_STRING_INPUT.CIN  Usage of cin for unbounded string input

SV.UNBOUND_STRING_INPUT.FUNC  Usage of unbounded string input

CWE-788: Access of Memory Location After End of Buffer

ABV.ANY_SIZE_ARRAY  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

ABV.NON_ARRAY  Non-array object is used as an array

ABV.STACK  Buffer Overflow - Local Array Index Out of Bounds

ABV.TAINTED  Buffer Overflow from Unvalidated Input

SV.TAINTED.CALL.INDEX_ACCESS  Use of Unvalidated Integer as Array Index by Function Call

SV.TAINTED.INDEX_ACCESS  Use of Unvalidated Integer as Array Index

CWE-791: Incomplete Filtering of Special Elements

SV.CODE_INJECTION.SHELL_EXEC  Command Injection into Shell Execution

SV.TAINTED.CALL.DEREF  Dereference Of An Unvalidated Pointer

SV.TAINTED.DEREF  Dereference Of An Unvalidated Pointer

SV.TAINTED.FMTSTR  Use of Unvalidated Data in a Format String

SV.TAINTED.INJECTION  Command Injection

CWE-798: Use of Hard-coded Credentials

CXX.SV.PWD.PLAIN  Attempt to set password using a plain string

CXX.SV.PWD.PLAIN.LENGTH  Attempt to set password with a length less than 15 characters

CXX.SV.PWD.PLAIN.LENGTH.ZERO  Attempt to set password with a length of zero characters

HCC  Use of hardcoded credentials

HCC.PWD  Use of a hardcoded password

HCC.USER  Use of a hardcoded user name

CWE-805: Buffer Access with Incorrect Length Value

ABV.ANY_SIZE_ARRAY  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

ABV.ITERATOR  Buffer Overflow - Array Index may be out of Bounds

ABV.NON_ARRAY  Non-array object is used as an array

ABV.STACK  Buffer Overflow - Local Array Index Out of Bounds

ABV.TAINTED  Buffer Overflow from Unvalidated Input

CXX.SIZEOF.CSTRING  Use of sizeof on char* may be misleading

INCORRECT.ALLOC_SIZE  Incorrect Allocation Size

SV.TAINTED.CALL.INDEX_ACCESS  Use of Unvalidated Integer as Array Index by Function Call

SV.TAINTED.INDEX_ACCESS  Use of Unvalidated Integer as Array Index

CWE-806: Buffer Access Using Size of Source Buffer

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

ABV.ITERATOR  Buffer Overflow - Array Index may be out of Bounds

ABV.MEMBER  Buffer Overflow - Array Index Out of Bounds

ABV.NON_ARRAY  Non-array object is used as an array

ABV.STACK  Buffer Overflow - Local Array Index Out of Bounds

ABV.TAINTED  Buffer Overflow from Unvalidated Input

ABV.UNICODE.BOUND_MAP  Buffer overflow in mapping character function

ABV.UNICODE.FAILED_MAP  Mapping function failed

ABV.UNICODE.NNTS_MAP  Buffer overflow in mapping character function

ABV.UNICODE.SELF_MAP  Mapping function failed

CWE-822: Untrusted Pointer Dereference

SV.TAINTED.CALL.DEREF  Dereference Of An Unvalidated Pointer

SV.TAINTED.DEREF  Dereference Of An Unvalidated Pointer

CWE-832: Unlock of a Resource that is not Locked

CONC.NO_LOCK  Missing lock for variable

MISRA.STDLIB.MUTEX.NO_LOCK.2023  Missing lock for mutex variable

CWE-833: Deadlock

CONC.DL  Deadlock

CWE-835: Loop with Unreachable Exit Condition ('Infinite Loop')

CXX.STATIC.OBJ.RECURSION  Do not reenter function during initialization of static objects

INFINITE_LOOP.GLOBAL  Infinite loop

INFINITE_LOOP.LOCAL  Infinite loop

INFINITE_LOOP.MACRO  Infinite loop

CWE-842: Placement of User into Incorrect Group

SV.USAGERULES.PERMISSIONS  Use of Privilege Elevation

CWE-843: Access of Resource Using Incompatible Type ('Type Confusion')

AUTOSAR.CAST.CSTYLE  Traditional C-style casts shall not be used

AUTOSAR.CAST.REINTERPRET  reinterpret_cast shall not be used

MISRA.CAST.OBJ_PTR_TO_INT.2012  Conversion performed between a pointer to an object and an integer type

CWE-896: SFP Primary Cluster: Tainted Input

ABV.TAINTED  Buffer Overflow from Unvalidated Input

NNTS.TAINTED  Unvalidated User Input Causing Buffer Overflow - Non-Null Terminated String

SV.TAINTED.ALLOC_SIZE  Use of Unvalidated Integer in Memory Allocation

SV.TAINTED.BINOP  Use of Unvalidated Integer in Binary Operation

SV.TAINTED.CALL.BINOP  Use of Unvalidated Integer in Binary Operation

SV.TAINTED.CALL.DEREF  Dereference Of An Unvalidated Pointer

SV.TAINTED.CALL.INDEX_ACCESS  Use of Unvalidated Integer as Array Index by Function Call

SV.TAINTED.CALL.LOOP_BOUND  Use of Unvalidated Integer in Loop Condition through a Function Call

SV.TAINTED.DEREF  Dereference Of An Unvalidated Pointer

SV.TAINTED.FMTSTR  Use of Unvalidated Data in a Format String

SV.TAINTED.INDEX_ACCESS  Use of Unvalidated Integer as Array Index

SV.TAINTED.INJECTION  Command Injection

SV.TAINTED.LOOP_BOUND  Use of Unvalidated Integer in Loop Condition

SV.TAINTED.PATH_TRAVERSAL  Use of Unvalidated Data in a Path Traversal

SV.TAINTED.SECURITY_DECISION  Security Decision

SV.TAINTED.XSS.REFLECTED  Cross-site Scripting Vulnerability

CWE-910: Use of Expired File Descriptor

SV.INCORRECT_RESOURCE_HANDLING.URH  Insecure Resource Handling

CWE-916: Use of Password Hash With Insufficient Computational Effort

RCA  Risky cryptographic algorithm used

SV.WEAK_CRYPTO.WEAK_HASH  Weak Hash Function

CWE-1037: Processor Optimization Removal or Modification of Security-critical Code

SPECTRE.VARIANT1  Potential exploit of speculative execution

CWE-1095: Loop Condition Value Update within the Loop

MISRA.FOR.BODY.LOOP_CTR_MODIFIED  The loop counter should not be modified in the loop body

MISRA.FOR.BODY.LOOP_CTR_MODIFIED.MIGHT  The loop counter should not be modified in the loop body

MISRA.FOR.STMT.CHANGE  For loop counter is modified within the loop statement

CWE-1119: Excessive Use of Unconditional Branching

AUTOSAR.GOTO  The goto statement shall not be used

MISRA.GOTO  Goto statement is used

CWE-1220: Insufficient Granularity of Access Control

SV.LPP.CONST  Use of Insecure Macro for Dangerous Functions

SV.LPP.VAR  Use of Insecure Parameter for Dangerous Functions

SV.USAGERULES.PERMISSIONS  Use of Privilege Elevation

CWE-1240: Use of a Cryptographic Primitive with a Risky Implementation

RCA  Risky cryptographic algorithm used

SV.WEAK_CRYPTO.WEAK_HASH  Weak Hash Function

CWE-1241: Use of Predictable Algorithm in Random Number Generator

RCA  Risky cryptographic algorithm used

CWE-1335: Incorrect Bitwise Shift of Integer

MISRA.SHIFT.RANGE  Right operand of shift operation is out of range - greater or equal to max bit-length of left operand, or negative

Support Summary:

  • 92 rules