Payment Card Industry Data Security Standard IDs mapped to Klocwork checkers

In this topic:

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++

PCI DSS ID Checker Code 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.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#

PCI DSS ID Checker Code 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

PCI DSS ID Checker Code 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.10

SV.ECV  Empty certificate validation

SV.LDAP  Unvalidated user input is used as LDAP filter

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