CWE Standard Compliance

CWE

CWE (Common Weakness Enumeration) is the most common and impactful issue that allows developers, testers, users, project managers to find the severe and current security weak code checks.

Supported Language: Java, C/ C++, Go, Python, Ruby

CPP

The below table will provide you with insight into currently supported CWE C/CPP security checks.

Sr. NoSupported CWE Checks
1.CWE-910 : The software uses or accesses a file descriptor after it has been closed.
2.CWE-415: The product calls free() twice on the same memory address, potentially leading to modification of unexpected memory locations.
3.CWE-404: The program does not release or incorrectly releases a resource before it is made available for re-use.
4.CWE-401: The software does not sufficiently track and release allocated memory after it has been used, which slowly consumes remaining memory
5.CWE-369: The product divides a value by zero.
6.CWE-252: The software does not check the return value from a method or function, which can prevent it from detecting unexpected states and conditions.
7.CWE-783: The program uses an expression in which operator precedence causes incorrect logic to be used.
8.CWE-561: The software contains dead code, which can never be executed.
9.CWE-484 : The program omits a break statement within a switch or similar construct, causing code associated with multiple conditions to execute. This can cause problems when the programmer only intended to execute code associated with one condition.
10.CWE-478: The code does not have a default case in a switch statement, which might lead to complex logical errors and resultant weaknesses.
11.CWE-338: The product uses a Pseudo-Random Number Generator (PRNG) in a security context, but the PRNG's algorithm is not cryptographically strong.
12.CWE-121: Stack-based Buffer Overflow
13.CWE-122: Heap-based Buffer Overflow
14,CWE-124: Buffer Underwrite ('Buffer Underflow')
15.CWE-126: Buffer Over-read
16.CWE-127: Buffer Under-read
17.CWE-197: Numeric Truncation Error
18.CWE-242: Use of Inherently Dangerous Function
19.CWE-398: Indicator of Poor Code Quality
20.CWE-401: Improper Release of Memory Before Removing Last Reference ('Memory Leak')
21.CWE-416: Use After Free
22.CWE-457: Use of Uninitialized Variable
23.CWE-476: NULL Pointer Dereference
24.CWE-483: Incorrect Block Delimitation
25.CWE-562: Return of Stack Variable Address
26.CWE-563: Assignment to Variable without Use ('Unused Variable')
27.CWE-570: Expression is Always False
28.CWE-571: Expression is Always True
29.CWE-674: Uncontrolled Recursion
30.CWE-758: Reliance on Undefined, Unspecified, or Implementation-Defined Behavior
31.CWE-762: Mismatched Memory Management Routines
32.CWE-704: Incorrect Type Conversion or Cast
33.CWE-843: Access of Resource Using Incompatible Type ('Type Confusion')
34.CWE-15: External Control of System or Configuration Setting
35.CWE-908: Use of Uninitialized Resource
36.CWE-911: Improper Update of Reference Count
37.CWE-772: Missing Release of Resource after Effective Lifetime
38.CWE-833: Improper Locking
39.CWE-413: Improper Resource Locking
40.CWE-335: Incorrect Usage of Seeds in Pseudo-Random Number Generator (PRNG)
41.CWE-468: Incorrect Pointer Scaling
42.CWE-825: Expired Pointer Dereference
43.CWE-466: Return of Pointer Value Outside of Expected Range
44.CWE-390: Detection of Error Condition Without Action
45.CWE-1069: Empty Exception Block
46.CWE-477: Use of Obsolete Function
47.CWE-676: Use of Potentially Dangerous Function
48.CWE-749: Exposed Dangerous Method or Function
49.CWE-547: Use of Hard-coded, Security-relevant Constants
50.CWE-628: Function Call with Incorrectly Specified Arguments
51.CWE-694: Use of Multiple Resources with Duplicate Identifier
52.CWE-1041: Use of Redundant Code
53.CWE-1045: Parent Class with a Virtual Destructor and a Child Class without a Virtual Destructor
54.CWE-1046: Creation of Immutable Text Using String Concatenation
55.CWE-1116: Inaccurate Comments
56.CWE-1077: Floating Point Comparison with Incorrect Operator
57.CWE-681: Incorrect Conversion between Numeric Types
58.CWE-1071: Empty Code Block
59.CWE-1126: Declaration of Variable with Unnecessarily Wide Scope
60.CWE-1113: Inappropriate Comment Style
61.CWE-1109: Use of Same Variable for Multiple Purposes
62.CWE-1108: Excessive Reliance on Global Variables
63.CWE-1102: Reliance on Machine-Dependent Data Representation
64.CWE-1098: Data Element containing Pointer Item without Proper Copy Control Element
65.CWE-1078: Inappropriate Source Code Style or Formatting
66.CWE-590: Free of Memory not on the Heap
67.CWE-664: Improper Control of a Resource Through its Lifetime
68.CWE-788: Access of Memory Location After End of Buffer
69.CWE-786: Access of Memory Location Before Start of Buffer
70.CWE-687: Function Call With Incorrectly Specified Argument Value
71.CWE-688: Function Call With Incorrect Variable or Reference as Argument
72.CWE-686: Function Call With Incorrect Argument Type
73.CWE-665: Improper Initialization
74.CWE-391: Unchecked Error Condition
75.CWE-703: Improper Check or Handling of Exceptional Conditions
76.CWE-119: Improper Restriction of Operations within the Bounds of a Memory Buffer
77.CWE-685: Function Call With Incorrect Number of Arguments
78.CWE-672: Operation on a Resource after Expiration or Release
79.CWE-771: Missing Reference to Active Allocated Resource
80.CWE-775: Missing Release of File Descriptor or Handle after Effective Lifetime
81.CWE-190: Integer Overflow or Wraparound
82.CWE-595: Comparison of Object References Instead of Object Contents
83.CWE-467: Use of sizeof() on a Pointer Type
84.CWE-682: Incorrect Calculation
85.CWE-587: Assignment of a Fixed Address to a Pointer
86.CWE-131: Incorrect Calculation of Buffer Size
87.CWE-362: Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')
88.CWE-195: Signed to Unsigned Conversion Error
89.CWE-128: Wrap-around Error
90.CWE-597: Use of Wrong Operator in String Comparison
91CWE-834: Excessive Iteration
92.CWE-768: Incorrect Short Circuit Evaluation
93.CWE-392: Missing Report of Error Condition
94.CWE-415: Double Free
95.CWE-606: Unchecked Input for Loop Condition
96.CWE- 835: Loop with Unreachable Exit Condition
97.CWE-129: An unvalidated argument is passed to a function that uses it to access an array.
98.CWE-664: invalid iterator
99.CWE-476: unconditional pointer return dref

Java

The below table will provide you with insight into currently supported Java security checks.

Sr.NoSupported Rules
1.CWE-352 : Do not disable spring security's CSRF
2.CWE-359 : Avoid logging of application sensitive data
3.CWE- 624: Regex pattern coming as input (method parameter, web request attribute, etc.)
4.CWE- 459: Close the resources in finally block
5.CWE- 404: Close the resources in finally block
6.CWE- 330: Secure Random should not initialize in method
7.CWE- 327: Use a stronger cipher algorithm
8.CWE- 833: Avoid using Thread.sleep() in a synchronized block or method
9.CWE- 820: Non-private field accessed in synchronized block indicates possibly partial synchronization
10.CWE- 521: Use password while creating database connection.
11.CWE- 78: Potential Command Injection
12.CWE- 521: LDAP connections should be authenticated
13.CWE- 489: Web applications should not have a "main" method
14.CWE- 807: HttpServletRequest.getRequestedSessionId() should not be used
15.CWE- 22: Potential Path Traversal
16.CWE- 312: Accessing Android external storage is security-sensitive
17.CWE- 20: Accessing Android external storage is security-sensitive
18.CWE- 502:Using unsafe Jackson deserialization configuration is security-sensitive
19.CWE- 15: Setting JavaBean properties is security-sensitive
20.CWE- 572: Do not call run() method directly
21.CWE- 586: RunFinalizersOnExit Should Not Be Called
22.CWE- 579: Non Serializable In Session
23.CWE- 500: Public Static Field Should Be Final
24.CWE- 585: Empty Synchronized Block
25.CWE- 584: Return In Finally Block
26.CWE- 586: Explicit Call To Finalize