GitHub
CERT Secure Coding

Parasoft

This page was automatically generated and should not be edited.

The information on this page was provided by outside contributors and has not been verified by SEI CERT.

The table below can be re-ordered, by clicking column headers.

Tool Version: 2025.2

CheckerGuideline
CERT.DCL00.ACDDCL00-J. Prevent class initialization cycles
CERT.DCL02.ITMODDCL02-J. Do not modify the collection's elements during an enhanced for statement
CERT.DCL51.HMFDCL51-J. Do not shadow or obscure identifiers in subscopes
CERT.DCL52.MVOSDCL52-J. Do not declare more than one variable per declaration
CERT.DCL57.OVAMDCL57-J. Avoid ambiguous overloading of variable arity methods
CERT.DCL60.ACDDCL60-J. Avoid cyclic dependencies between packages
CERT.ENV02.ENVENV02-J. Do not trust the values of environment variables
CERT.ERR00.LGEERR00-J. Do not suppress or ignore checked exceptions
CERT.ERR00.UCATCHERR00-J. Do not suppress or ignore checked exceptions
CERT.ERR01.ACPSTERR01-J. Do not allow exceptions to expose sensitive information
CERT.ERR01.ACWERR01-J. Do not allow exceptions to expose sensitive information
CERT.ERR01.CETSERR01-J. Do not allow exceptions to expose sensitive information
CERT.ERR02.SIOERR02-J. Prevent exceptions while logging data
CERT.ERR03.REVOBJERR03-J. Restore prior object state on method failure
CERT.ERR04.ARCFERR04-J. Do not complete abruptly from a finally block
CERT.ERR04.ATSFERR04-J. Do not complete abruptly from a finally block
CERT.ERR05.ARCFERR05-J. Do not let checked exceptions escape from a finally block
CERT.ERR05.ATSFERR05-J. Do not let checked exceptions escape from a finally block
CERT.ERR07.NTERRERR07-J. Do not throw RuntimeException, Exception, or Throwable
CERT.ERR07.NTXERR07-J. Do not throw RuntimeException, Exception, or Throwable
CERT.ERR08.NCNPEERR08-J. Do not catch NullPointerException or any of its ancestors
CERT.ERR09.EXITERR09-J. Do not allow untrusted code to terminate the JVM
CERT.ERR09.JVMERR09-J. Do not allow untrusted code to terminate the JVM
CERT.ERR51.NCEERR51-J. Prefer user-defined exceptions over more general exception types
CERT.ERR54.CLFINERR54-J. Use a try-with-resources statement to safely handle closeable resources
CERT.EXP00.AECBEXP00-J. Do not ignore values returned by methods
CERT.EXP00.NASSIGEXP00-J. Do not ignore values returned by methods
CERT.EXP01.NCMDEXP01-J. Do not use a null in a case where an object is required
CERT.EXP01.NPEXP01-J. Do not use a null in a case where an object is required
CERT.EXP02.UEICEXP02-J. Do not use the Object.equals() method to compare two arrays
CERT.EXP03.UEICEXP03-J. Do not use the equality operators when comparing values of boxed primitives
CERT.EXP05.CIDEXP05-J. Do not follow a write by a subsequent write or read of the same object within an expression
CERT.EXP06.EASEEXP06-J. Expressions used in assertions must not produce side effects
CERT.EXP50.UEICEXP50-J. Do not confuse abstract object equality with reference equality
CERT.EXP51.ASIEXP51-J. Do not perform assignments in conditional expressions
CERT.EXP52.BLKEXP52-J. Use braces for the body of an if, for, or while statement
CERT.EXP53.APARENEXP53-J. Use parentheses for precedence of operation
CERT.EXP55.COMTEXP55-J. Use the same type for the second and third operands in conditional expressions
CERT.FIO01.ASNFFIO01-J. Create files with appropriate access permissions
CERT.FIO01.CFAPFIO01-J. Create files with appropriate access permissions
CERT.FIO02.NASSIGIOFIO02-J. Detect and handle file-related errors
CERT.FIO03.ATFFIO03-J. Remove temporary files before termination
CERT.FIO03.REMTMPFIO03-J. Remove temporary files before termination
CERT.FIO04.CCRFIO04-J. Release resources when they are no longer needed
CERT.FIO04.CIOFIO04-J. Release resources when they are no longer needed
CERT.FIO04.LEAKSFIO04-J. Release resources when they are no longer needed
CERT.FIO05.BUFEXPFIO05-J. Do not expose buffers or their backing arrays methods to untrusted code
CERT.FIO06.MULBUFFIO06-J. Do not create multiple buffered wrappers on a single byte or character stream
CERT.FIO07.EXECFIO07-J. Do not let external processes block on IO buffers
CERT.FIO08.CRRVFIO08-J. Distinguish between characters or bytes read from a stream and -1
CERT.FIO09.ARGWRITEFIO09-J. Do not rely on the write() method to output integers outside the range 0 to 255
CERT.FIO10.NASSIGIOFIO10-J. Ensure the array is filled when using read() to fill an array
CERT.FIO12.PMRWLEDFIO12-J. Provide methods to read and write little-endian data
CERT.FIO13.CONSENFIO13-J. Do not log sensitive information outside a trust boundary
CERT.FIO13.LHIIFIO13-J. Do not log sensitive information outside a trust boundary
CERT.FIO13.PEOFIO13-J. Do not log sensitive information outside a trust boundary
CERT.FIO13.SENSFIO13-J. Do not log sensitive information outside a trust boundary
CERT.FIO14.CCRFIO14-J. Perform proper cleanup at program termination
CERT.FIO14.CIOFIO14-J. Perform proper cleanup at program termination
CERT.FIO14.CRWDFIO14-J. Perform proper cleanup at program termination
CERT.FIO16.CDBVFIO16-J. Canonicalize path names before validating them
CERT.IDS00.TDSQLIDS00-J. Prevent SQL injection
CERT.IDS03.TDLOGIDS03-J. Do not log unsanitized user input
CERT.IDS06.VAFSIDS06-J. Exclude unsanitized user input from format strings
CERT.IDS07.EXECIDS07-J. Sanitize untrusted data passed to the Runtime.exec() method
CERT.IDS11.VPPDIDS11-J. Perform any string modifications before validation
CERT.IDS16.TDXMLIDS16-J. Prevent XML Injection
CERT.IDS51.TDRESPIDS51-J. Properly encode or escape output
CERT.IDS51.TDXSSIDS51-J. Properly encode or escape output
CERT.IDS52.TDCODEIDS52-J. Prevent code injection
CERT.IDS53.TDJXPATHIDS53-J. Prevent XPath Injection
CERT.IDS53.TDXPATHIDS53-J. Prevent XPath Injection
CERT.IDS54.TDLDAPIDS54-J. Prevent LDAP injection
CERT.JNI00.NATIWJNI00-J. Define wrappers around native methods
CERT.LCK00.SOPFLCK00-J. Use private final lock objects to synchronize classes that may interact with untrusted code
CERT.LCK01.SCSLCK01-J. Do not synchronize on objects that may be reused
CERT.LCK02.SGCLCK02-J. Do not synchronize on the class object returned by getClass()
CERT.LCK04.SOBCLCK04-J. Do not synchronize on a collection view if the backing collection is accessible
CERT.LCK05.IASFLCK05-J. Synchronize access to static fields that can be modified by untrusted code
CERT.LCK06.INSTLOCKLCK06-J. Do not use an instance lock to protect shared static data
CERT.LCK07.LORDLCK07-J. Avoid deadlock by requesting and releasing locks in the same order
CERT.LCK08.LOCKLCK08-J. Ensure actively held locks are released on exceptional conditions
CERT.LCK08.RLFLCK08-J. Ensure actively held locks are released on exceptional conditions
CERT.LCK09.TSHLLCK09-J. Do not perform operations that can block while holding a lock
CERT.LCK09.TSHL2LCK09-J. Do not perform operations that can block while holding a lock
CERT.LCK10.DCLLCK10-J. Use a correct form of the double-checked locking idiom
CERT.MET02.DPRAPIMET02-J. Do not use deprecated or obsolete classes or methods
CERT.MET02.THRDMET02-J. Do not use deprecated or obsolete classes or methods
CERT.MET04.OPMMET04-J. Do not increase the accessibility of overridden or hidden methods
CERT.MET06.CLONEMET06-J. Do not invoke overridable methods in clone()
CERT.MET07.AHSMMET07-J. Never declare a class method that hides a method declared in a superclass or superinterface
CERT.MET08.EQREFLMET08-J. Preserve the equality contract when overriding the equals() method
CERT.MET09.OVERRIDEMET09-J. Classes that define an equals() method must also define a hashCode() method
CERT.MET11.IKICOMET11-J. Ensure that keys used in comparison operations are immutable
CERT.MET12.EFMET12-J. Do not use finalizers
CERT.MET12.FCFMET12-J. Do not use finalizers
CERT.MET12.FCSFMET12-J. Do not use finalizers
CERT.MET12.FMMET12-J. Do not use finalizers
CERT.MET12.IFFMET12-J. Do not use finalizers
CERT.MET12.MFPMET12-J. Do not use finalizers
CERT.MET12.MNDFMET12-J. Do not use finalizers
CERT.MET12.NCFMET12-J. Do not use finalizers
CERT.MET12.OFMET12-J. Do not use finalizers
CERT.MET50.OVERLOADMET50-J. Avoid ambiguous or confusing uses of overloading
CERT.MET52.CIFCMET52-J. Do not use the clone() method to copy untrusted method parameters
CERT.MET53.SCLONEMET53-J. Ensure that the clone() method calls super.clone()
CERT.MET55.COLNULLMET55-J. Return an empty array or collection instead of a null value for methods that return an array or collection
CERT.MSC01.EBMSC01-J. Do not use an empty infinite loop
CERT.MSC03.AHCAMSC03-J. Never hard code sensitive information
CERT.MSC03.HCCKMSC03-J. Never hard code sensitive information
CERT.MSC03.HCCSMSC03-J. Never hard code sensitive information
CERT.MSC04.LEAKSMSC04-J. Do not leak memory
CERT.MSC06.ITMODMSC06-J. Do not modify the underlying collection when an iteration is in progress
CERT.MSC07.ILIMSC07-J. Prevent multiple instantiations of singleton objects
CERT.MSC51.NSIFMSC51-J. Do not place a semicolon immediately following an if, for, or while condition
CERT.MSC52.SBCMSC52-J. Finish every set of statements associated with a case label with a break statement
CERT.MSC56.CCMSC56-J. Detect and remove superfluous code and values
CERT.MSC56.SWITCHMSC56-J. Detect and remove superfluous code and values
CERT.MSC56.VOVRMSC56-J. Detect and remove superfluous code and values
CERT.MSC57.PDCLMSC57-J. Strive for logical completeness
CERT.MSC57.PDSMSC57-J. Strive for logical completeness
CERT.MSC60.ASSERTMSC60-J. Do not use assertions to verify the absence of runtime errors
CERT.MSC61.AISSAJAVAMSC61-J. Do not use insecure or weak cryptographic algorithms
CERT.MSC61.AISSAXMLMSC61-J. Do not use insecure or weak cryptographic algorithms
CERT.MSC61.CKTSMSC61-J. Do not use insecure or weak cryptographic algorithms
CERT.MSC61.HCCKMSC61-J. Do not use insecure or weak cryptographic algorithms
CERT.MSC61.ICAMSC61-J. Do not use insecure or weak cryptographic algorithms
CERT.MSC62.PCCFMSC62-J. Store passwords using a hash function
CERT.MSC62.PLAINMSC62-J. Store passwords using a hash function
CERT.MSC62.PTPTMSC62-J. Store passwords using a hash function
CERT.MSC62.PWDPROPMSC62-J. Store passwords using a hash function
CERT.MSC62.PWDXMLMSC62-J. Store passwords using a hash function
CERT.MSC62.UTAXMSC62-J. Store passwords using a hash function
CERT.MSC62.WCPWDMSC62-J. Store passwords using a hash function
CERT.MSC62.WPWDMSC62-J. Store passwords using a hash function
CERT.NUM00.BSANUM00-J. Detect or prevent integer overflow
CERT.NUM00.CACONUM00-J. Detect or prevent integer overflow
CERT.NUM00.ICONUM00-J. Detect or prevent integer overflow
CERT.NUM01.BADSHIFTNUM01-J. Do not perform bitwise and arithmetic operations on the same data
CERT.NUM01.NCBAVNUM01-J. Do not perform bitwise and arithmetic operations on the same data
CERT.NUM02.ZERONUM02-J. Ensure that division and remainder operations do not result in divide-by-zero errors
CERT.NUM04.UBDNUM04-J. Do not use floating-point numbers if precise computation is required
CERT.NUM07.NANNUM07-J. Do not attempt comparisons with NaN
CERT.NUM08.FPEXCNUM08-J. Check floating-point inputs for exceptional values
CERT.NUM09.FPLINUM09-J. Do not use floating-point variables as loop counters
CERT.NUM10.BBDCCNUM10-J. Do not construct BigDecimal objects from floating-point literals
CERT.NUM12.CLPNUM12-J. Ensure conversions of numeric types to narrower types do not result in lost or misinterpreted data
CERT.NUM13.AICNUM13-J. Avoid loss of precision when converting primitive integers to floating-point
CERT.NUM50.IDCDNUM50-J. Convert integers to floating point for floating-point operations
CERT.OBJ03.AGBPTOBJ03-J. Prevent heap pollution
CERT.OBJ04.CLONEOBJ04-J. Provide mutable classes with copy functionality to safely allow passing instances to untrusted code
CERT.OBJ04.CPCLOBJ04-J. Provide mutable classes with copy functionality to safely allow passing instances to untrusted code
CERT.OBJ04.MPTOBJ04-J. Provide mutable classes with copy functionality to safely allow passing instances to untrusted code
CERT.OBJ04.MUCOPOBJ04-J. Provide mutable classes with copy functionality to safely allow passing instances to untrusted code
CERT.OBJ04.SMOOBJ04-J. Provide mutable classes with copy functionality to safely allow passing instances to untrusted code
CERT.OBJ05.CPCLOBJ05-J. Do not return references to private mutable class members
CERT.OBJ05.MPTOBJ05-J. Do not return references to private mutable class members
CERT.OBJ05.MUCOPOBJ05-J. Do not return references to private mutable class members
CERT.OBJ05.SMOOBJ05-J. Do not return references to private mutable class members
CERT.OBJ06..MPTOBJ06-J. Defensively copy mutable inputs and mutable internal components
CERT.OBJ06.CPCLOBJ06-J. Defensively copy mutable inputs and mutable internal components
CERT.OBJ06.MUCOPOBJ06-J. Defensively copy mutable inputs and mutable internal components
CERT.OBJ06.SMOOBJ06-J. Defensively copy mutable inputs and mutable internal components
CERT.OBJ07.MCNCOBJ07-J. Sensitive classes must not let themselves be copied
CERT.OBJ08.INNEROBJ08-J. Do not expose private members of an outer class from within a nested class
CERT.OBJ09.CMPOBJ09-J. Compare classes and not class names
CERT.OBJ10.RMOOBJ10-J. Do not use public static nonfinal fields
CERT.OBJ10.SPFFOBJ10-J. Do not use public static nonfinal fields
CERT.OBJ11.EPNFCOBJ11-J. Be wary of letting constructors throw exceptions
CERT.OBJ13.RMOOBJ13-J. Ensure that references to mutable objects are not exposed
CERT.OBJ51.DPACOBJ51-J. Minimize the accessibility of classes and their members
CERT.OBJ51.DPAFOBJ51-J. Minimize the accessibility of classes and their members
CERT.OBJ51.DPAMOBJ51-J. Minimize the accessibility of classes and their members
CERT.OBJ51.DPPCOBJ51-J. Minimize the accessibility of classes and their members
CERT.OBJ51.DPPFOBJ51-J. Minimize the accessibility of classes and their members
CERT.OBJ51.DPPMOBJ51-J. Minimize the accessibility of classes and their members
CERT.SEC01.PRIVILSEC01-J. Do not allow tainted variables in privileged blocks
CERT.SEC02.TDRFLSEC02-J. Do not base security checks on untrusted sources
CERT.SEC03.ACLSEC03-J. Do not load trusted classes after allowing untrusted code to load arbitrary classes
CERT.SEC04.SCFSEC04-J. Protect sensitive operations with security manager checks
CERT.SEC05.ARMSEC05-J. Do not use reflection to increase accessibility of classes, methods, or fields
CERT.SEC51.PCLSEC51-J. Minimize privileged code
CERT.SER00.DUIDSER00-J. Enable serialization compatibility during class evolution
CERT.SER01.ROWOSER01-J. Do not deviate from the proper signatures of serialization methods
CERT.SER03.SIFSER03-J. Do not serialize unencrypted sensitive data
CERT.SER04.SCSERSER04-J. Do not allow serialization and deserialization to bypass the security manager
CERT.SER07.RRSCSER07-J. Do not use the default serialized form for classes with implementation-defined invariants
CERT.SER09.VREADOBJSER09-J. Do not invoke overridable methods from the readObject() method
CERT.SER11.IRXSER11-J. Prevent overwriting of externalizable objects
CERT.SER12.VOBDSER12-J. Prevent deserialization of untrusted data
CERT.STR00.COSSTR00-J. Don't form strings containing partial characters from variable-width encodings
CERT.STR01.NCUCPSTR01-J. Do not assume that a Java char fully represents a Unicode code point
CERT.STR02.CCLSTR02-J. Specify an appropriate locale when comparing locale-dependent data
CERT.STR02.CTLCSTR02-J. Specify an appropriate locale when comparing locale-dependent data
CERT.THI00.IRUNTHI00-J. Do not invoke Thread.run()
CERT.THI01.AUTGTHI01-J. Do not invoke ThreadGroup methods
CERT.THI02.ANFTHI02-J. Notify all waiting threads rather than a single thread
CERT.THI03.UWILTHI03-J. Always invoke wait() and await() methods inside a loop
CERT.THI05.THRDTHI05-J. Do not use Thread.stop() to terminate threads
CERT.TPS00.ISTARTTPS00-J. Use thread pools to enable graceful degradation of service during traffic bursts
CERT.TSM00.OSNSTSM00-J. Do not override thread-safe methods with methods that are not thread-safe
CERT.TSM01.CTRETSM01-J. Do not let the this reference escape during object construction
CERT.TSM02.CSTARTTSM02-J. Do not use background threads during class initialization
CERT.VNA00.LORDVNA00-J. Ensure visibility when accessing shared primitive variables
CERT.VNA00.MRAVVNA00-J. Ensure visibility when accessing shared primitive variables
CERT.VNA01.SGASVNA01-J. Ensure visibility of shared references to immutable objects
CERT.VNA02.MRAVVNA02-J. Ensure that compound operations on shared variables are atomic
CERT.VNA02.SSUGVNA02-J. Ensure that compound operations on shared variables are atomic
CERT.VNA03.MRAVVNA03-J. Do not assume that a group of calls to independently atomic methods is atomic
CERT.VNA03.SSUGVNA03-J. Do not assume that a group of calls to independently atomic methods is atomic
CRT.MSC02.SRDMSC02-J. Generate strong random numbers
SECURITY.WSC.USCMSC00-J. Use SSLSocket rather than Socket for secure data exchange