Payment Card Industry Data Security Standard IDs mapped to Klocwork checkers
The tables below map the Payment Card Industry Data Security Standard (PCI DSS) Version 3.2.1 IDs to Klocwork checkers. The PCI DSS was developed to encourage and enhance cardholder data security and facilitate the broad adoption of consistent data security measures globally. The PCI DSS provides a baseline of technical and operational requirements designed to protect account data.
C and C++
ID | Checker name and description |
---|---|
6.5.1 |
LS.CALL Suspicious use of non-localized string in GUI function LS.CALL.STRING Suspicious use of non-localized string in GUI function SV.BRM.HKEY_LOCAL_MACHINE HKEY_LOCAL_MACHINE Used as 'hkey' Parameter for Registry Manipulation Function SV.CODE_INJECTION.SHELL_EXEC Command Injection into Shell Execution 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.FIU.PROCESS_VARIANTS Use of Dangerous Process Creation SV.FMTSTR.GENERIC Format String Vulnerability SV.LPP.CONST Use of Insecure Macro for Dangerous Functions SV.LPP.VAR Use of Insecure Parameter for Dangerous Functions 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 SV.PIPE.CONST Potential pipe hijacking SV.PIPE.VAR Potential pipe hijacking SV.SIP.CONST Use of Insecure Macro for Dangerous Functions SV.SIP.VAR Use of Insecure Parameter for Dangerous Functions SV.STR_PAR.UNDESIRED_STRING_PARAMETER Undesired String for File Path 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.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.TOCTOU.FILE_ACCESS Time of Creation/Time of Use Race condition in File Access SV.USAGERULES.PERMISSIONS Use of Privilege Elevation SV.USAGERULES.PROCESS_VARIANTS Use of Dangerous Process Creation Function UNINIT.CTOR.MIGHT Uninitialized Variable in Constructor - possible UNINIT.CTOR.MUST Uninitialized Variable in Constructor UNINIT.HEAP.MIGHT Uninitialized Heap Use - possible 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.MUST Uninitialized Variable |
6.5.2 |
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 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_COPY.OVERFLOW Buffer Overflow in Bound String Copy SV.STRBO.BOUND_COPY.UNTERM Possible Buffer Overflow in Following String Operations SV.STRBO.BOUND_SPRINTF Buffer Overflow in Bound sprintf SV.STRBO.UNBOUND_COPY Buffer Overflow in Unbound String Copy SV.STRBO.UNBOUND_SPRINTF Buffer Overflow in Unbound sprintf SV.TAINTED.ALLOC_SIZE Use of Unvalidated Integer in Memory Allocation SV.TAINTED.CALL.INDEX_ACCESS Use of Unvalidated Integer as Array Index by Function Call SV.TAINTED.FMTSTR Use of Unvalidated Data in a Format String SV.TAINTED.INDEX_ACCESS Use of Unvalidated Integer as Array Index SV.UNBOUND_STRING_INPUT.CIN Usage of cin for unbounded string input SV.UNBOUND_STRING_INPUT.FUNC Usage of unbounded string input |
6.5.3 |
HCC Use of hardcoded credentials HCC.PWD Use of a hardcoded password HCC.USER Use of a hardcoded user name RCA Risky cryptographic algorithm used RCA.HASH.SALT.EMPTY Use of a one-way hash with an empty salt 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 SV.WEAK_CRYPTO.WEAK_HASH Weak Hash Function |
6.5.4 |
SV.BFC.USING_STRUCT Use of INADDR_ANY in sin_addr.s_addr field of struct sockaddr_in Structure Used for Call to bind Function SV.USAGERULES.SPOOFING Use of Function Susceptible to Spoofing |
6.5.5 |
AUTOSAR.EXCPT.DYNAMIC_SPEC Dynamic exception-specification shall not be used 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.CATCH.ALL No ellipsis exception handler in a try-catch block 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.CTOR.TRY.NON_STATIC Function try/catch block of constructor or destructor references non-static members MISRA.DECL.EXCPT.SPEC Function is declared with different exception specifications MISRA.DTOR.THROW Throw in destructor MISRA.INCL.SIGNAL.2012 The standard header file signal.h shall not be used MISRA.STDLIB.LONGJMP Use of setjmp macro or longjmp function MISRA.STDLIB.SIGNAL Use of the signal handling facilities of signal.h MISRA.THROW.EMPTY Empty throw expression does not belong to a catch block MISRA.THROW.NULL NULL is thrown explicitly MISRA.THROW.PTR Exception object is a pointer MISRA.TRY.JUMP Control can be transferred into a try block with goto or switch statement |
6.5.7 |
SV.TAINTED.XSS.REFLECTED Cross-site Scripting Vulnerability |
6.5.8 |
SV.STR_PAR.UNDESIRED_STRING_PARAMETER Undesired String for File Path SV.TAINTED.SECURITY_DECISION Security Decision SV.USAGERULES.PERMISSIONS Use of Privilege Elevation |
C#
ID | Checker name and description |
---|---|
6.5.1 |
CS.SQL.INJECT.LOCAL SQL injection |
6.5.3 |
CS.RCA Risky cryptographic algorithm used |
6.5.5 |
CS.EMPTY.CATCH Empty catch clause |
6.5.8 |
CS.NPS No permissions set for resource before accessing it |
Java
ID | Checker name and description |
---|---|
6.5.1 |
SV.CLASSDEF.INJ Runtime Class Definition Injection SV.CLASSLOADER.INJ Class Loader URL Injection SV.DATA.BOUND Untrusted Data leaks into trusted storage SV.DATA.DB Data injection SV.EXEC Process Injection SV.EXEC.DIR Process Injection. Working Directory SV.EXEC.ENV Process Injection. Environment Variables SV.EXEC.LOCAL Process Injection. Local Arguments SV.PATH Path and file name injection SV.PATH.INJ File injection SV.SQL Sql Injection SV.SQL.DBSOURCE Unchecked information from the database is used in SQL statements |
6.5.2 |
SV.DOS.ARRINDEX Tainted index used for array access SV.DOS.ARRSIZE Tainted size used for array allocation |
6.5.3 |
SV.HASH.NO_SALT Use of a one-way cryptographic hash without a salt SV.PASSWD.HC Hardcoded Password SV.PASSWD.HC.EMPTY Empty Password SV.PASSWD.PLAIN Plain-text Password SV.RANDOM Use of insecure Random number generator SV.SENSITIVE.DATA Unencrypted sensitive data is written SV.SENSITIVE.OBJ Object with unencrypted sensitive data is stored SV.WEAK.CRYPT Use of a Broken or Risky Cryptographic Algorithm |
6.5.4 |
SV.EMAIL Unchecked e-mail SV.HTTP_SPLIT Http Response Splitting SV.SERIAL.NOREAD Method readObject() should be defined for a serializable class SV.SERIAL.NOWRITE Method writeObject() should be defined for a serializable class SV.SERIAL.SIG Methods readObject() and writeObject() in serializable classes should have correct signature SV.TAINT Tainted data SV.TAINT_NATIVE Tainted data goes to native code |
6.5.5 |
ECC.EMPTY Empty catch clause EXC.BROADTHROWS Method has an overly broad throws declaration JD.CATCH Catching runtime exception JD.FINRET Return inside finally JD.UNCAUGHT Uncaught exception SV.IL.DEV Design information leakage SV.IL.FILE File Name Leaking UMC.SYSERR Debug print using System.err method calls is unwanted UMC.SYSOUT Debug print using System.out method calls is unwanted |
6.5.7 |
SV.XSS.DB Cross Site Scripting (Stored XSS) SV.XSS.REF Cross Site Scripting (Reflected XSS) |
6.5.8 |
ANDROID.LIFECYCLE.SV.FRAGMENTINJ Unvalidated fragment class name ANDROID.LIFECYCLE.SV.GETEXTRA Unvalidated external data SV.DOS.TMPFILEDEL Leaving temporary file for lifetime of JVM SV.DOS.TMPFILEEXIT Leaving temporary file |
6.5.9 |
SV.CSRF.GET CSRF Token in GET request SV.CSRF.ORIGIN Request handler without an origin check SV.CSRF.TOKEN State changing request handler without a CSRF check |
6.5.10 |
SV.ECV Empty certificate validation SV.LDAP Unvalidated user input is used as LDAP filter |