DATASHEET

CWE C Enforcement

ENFORCEMENT HELIX QAC 2024.1

Note the CWEs listed are from CWE 4.12

ALL WEAKNESSES

Rule ID

Description

CWE-14

Compiler Removal of Code to Clear Buffers

CWE-20

Improper Input Validation

CWE-78

Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')

CWE-88

Improper Neutralization of Argument Delimiters in a Command ('Argument Injection')

CWE-99

Improper Control of Resource Identifiers ('Resource Injection')

CWE-119

Improper Restriction of Operations within the Bounds of a Memory Buffer

CWE-120

Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')

CWE-121

Stack-based Buffer Overflow

CWE-122

Heap-based Buffer Overflow

CWE-124

Buffer Underwrite ('Buffer Underflow')

CWE-125

Out-of-bounds Read

CWE-126

Buffer Over-read

CWE-127

Buffer Under-read

CWE-128

Wrap-around Error

CWE-129

Improper Validation of Array Index

CWE-130

Improper Handling of Length Parameter Inconsistency

CWE-131

Incorrect Calculation of Buffer Size

CWE-134

Use of Externally-Controlled Format String

CWE-135

Incorrect Calculation of Multi-Byte String Length

CWE-136

Type Errors

CWE-170

Improper Null Termination

CWE-176

Improper Handling of Unicode Encoding

CWE-187

Partial String Comparison

CWE-188

Reliance on Data/Memory Layout

CWE-190

Integer Overflow or Wraparound

CWE-191

Integer Underflow (Wrap or Wraparound)

CWE-192

Integer Coercion Error

CWE-193

Off-by-one Error

CWE-194

Unexpected Sign Extension

CWE-195

Signed to Unsigned Conversion Error

CWE-196

Unsigned to Signed Conversion Error

CWE-197

Numeric Truncation Error

CWE-233

Improper Handling of Parameters

CWE-234

Failure to Handle Missing Parameter

CWE-235

Improper Handling of Extra Parameters

CWE-242

Use of Inherently Dangerous Function

CWE-243

Creation of chroot Jail Without Changing Working Directory

CWE-244

Improper Clearing of Heap Memory Before Release ('Heap Inspection')

CWE-250

Execution with Unnecessary Privileges

CWE-251

Often Misused: String Management

CWE-252

Unchecked Return Value

CWE-253

Incorrect Check of Function Return Value

CWE-259

Use of Hard-coded Password

CWE-273

Improper Check for Dropped Privileges

CWE-321

Use of Hard-coded Cryptographic Key

CWE-324

Use of a Key Past its Expiration Date

CWE-327

Use of a Broken or Risky Cryptographic Algorithm

CWE-336

Same seed in Pseudo-Random Number Generator (PRNG)

CWE-337

Predictable seed in Pseudo-Random Number Generator (PRNG)

CWE-338

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

CWE-362

Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')

CWE-367

Time-of-check Time-of-use (TOCTOU) Race Condition

CWE-369

Divide By Zero

CWE-374

Passing Mutable Objects to an Untrusted Method

CWE-375

Returning a Mutable Object to an Untrusted Caller

CWE-389

Error Conditions, Return Values, Status Codes

CWE-391

Unchecked Error Condition

CWE-398

7PK - Code Quality

CWE-401

Missing Release of Memory after Effective Lifetime

CWE-412

Unrestricted Externally Accessible Lock

CWE-413

Improper Resource Locking

CWE-416

Use After Free

CWE-452

Initialization and Cleanup Errors

CWE-456

Missing Initialization of a Variable

CWE-457

Use of Uninitialized Variable

CWE-465

Pointer Issues

CWE-466

Return of Pointer Value Outside of Expected Range

CWE-467

Use of sizeof() on a Pointer Type

CWE-468

Incorrect Pointer Scaling

CWE-469

Use of Pointer Subtraction to Determine Size

CWE-474

Use of Function with Inconsistent Implementations

CWE-475

Undefined Behaviour for Input to API

CWE-476

NULL Pointer Dereference

CWE-478

Missing Default Case in Multiple Condition Expression

CWE-479

Signal Handler Use of a Non-reentrant Function

CWE-480

Use of Incorrect Operator

CWE-481

Assigning instead of Comparing

CWE-482

Comparing instead of Assigning

CWE-483

Incorrect Block Delimitation

CWE-484

Omitted Break Statement in Switch

CWE-489

Active Debug Code

CWE-547

Use of Hard-coded, Security-relevant Constants

CWE-558

Use of getlogin() in Multithreaded Application

CWE-560

Use of umask() with chmod-style Argument

CWE-561

Dead Code

CWE-562

Return of Stack Variable Address

CWE-563

Assignment to Variable without Use

CWE-569

Expression Issues

CWE-570

Expression is Always False

CWE-571

Expression is Always True

CWE-587

Assignment of a Fixed Address to a Pointer

CWE-588

Attempt to Access Child of a Non-structure Pointer

CWE-597

Use of Wrong Operator in String Comparison

CWE-606

Unchecked Input for Loop Condition

CWE-628

Function Call with Incorrectly Specified Arguments

CWE-665

Improper Initialization

CWE-670

Always-Incorrect Control Flow Implementation

CWE-674

Uncontrolled Recursion

CWE-676

Use of Potentially Dangerous Function

CWE-680

Integer Overflow to Buffer Overflow

CWE-681

Incorrect Conversion between Numeric Types

CWE-682

Incorrect Calculation

CWE-685

Function Call With Incorrect Number of Arguments

CWE-686

Function Call With Incorrect Argument Type

CWE-690

Unchecked Return Value to NULL Pointer Dereference

CWE-697

Insufficient Comparison

CWE-704

Incorrect Type Conversion or Cast

CWE-705

Incorrect Control Flow Scoping

CWE-758

Reliance on Undefined, Unspecified, or Implementation-Defined Behavior

CWE-768

Incorrect Short Circuit Evaluation

CWE-783

Operator Precedence Logic Error

CWE-785

Use of Path Manipulation Function without Maximum-sized Buffer

CWE-786

Access of Memory Location Before Start of Buffer

CWE-787

Out-of-bounds Write

CWE-788

Access of Memory Location After End of Buffer

CWE-805

Buffer Access with Incorrect Length Value

CWE-806

Buffer Access Using Size of Source Buffer

CWE-823

Use of Out-of-range Pointer Offset

CWE-824

Access of Uninitialized Pointer

CWE-835

Loop with Unreachable Exit Condition ('Infinite Loop')

CWE-843

Access of Resource Using Incompatible Type ('Type Confusion')

CWE-908

Use of Uninitialized Resource

CWE-909

Missing Initialization of Resource

CWE-1155

SEI CERT C Coding Standard - Guidelines 01. Preprocessor (PRE)

CWE-1156

SEI CERT C Coding Standard - Guidelines 02. Declarations and Initialization (DCL)

CWE-1157

SEI CERT C Coding Standard - Guidelines 03. Expressions (EXP)

CWE-1158

SEI CERT C Coding Standard - Guidelines 04. Integers (INT)

CWE-1159

SEI CERT C Coding Standard - Guidelines 05. Floating Point (FLP)

CWE-1160

SEI CERT C Coding Standard - Guidelines 06. Arrays (ARR)

CWE-1161

SEI CERT C Coding Standard - Guidelines 07. Characters and Strings (STR)

CWE-1162

SEI CERT C Coding Standard - Guidelines 08. Memory Management (MEM)

CWE-1163

SEI CERT C Coding Standard - Guidelines 09. Input Output (FIO)

CWE-1165

SEI CERT C Coding Standard - Guidelines 10. Environment (ENV)

CWE-1166

SEI CERT C Coding Standard - Guidelines 11. Signals (SIG)

CWE-1167

SEI CERT C Coding Standard - Guidelines 12. Error Handling (ERR)

CWE-1170

SEI CERT C Coding Standard - Guidelines 48. Miscellaneous (MSC)

CWE-1171

SEI CERT C Coding Standard - Guidelines 50. POSIX (POS)

 

CWE-658 - Weaknesses in Software Written in C

CWE-ID

Description

Enforced

CWE-14

Compiler Removal of Code to Clear Buffers

Yes

CWE-119

Improper Restriction of Operations within the Bounds of a Memory Buffer

Yes

CWE-120

Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')

Yes

CWE-121

Stack-based Buffer Overflow

Yes

CWE-122

Heap-based Buffer Overflow

Yes

CWE-123

Write-what-where Condition

No

CWE-124

Buffer Underwrite ('Buffer Underflow')

Yes

CWE-125

Out-of-bounds Read

Yes

CWE-126

Buffer Over-read

Yes

CWE-127

Buffer Under-read

Yes

CWE-128

Wrap-around Error

Yes

CWE-129

Improper Validation of Array Index

Yes

CWE-130

Improper Handling of Length Parameter Inconsistency

Yes

CWE-131

Incorrect Calculation of Buffer Size

Yes

CWE-134

Use of Externally-Controlled Format String

Yes

CWE-135

Incorrect Calculation of Multi-Byte String Length

Yes

CWE-170

Improper Null Termination

Yes

CWE-188

Reliance on Data/Memory Layout

Yes

CWE-191

Integer Underflow (Wrap or Wraparound)

Yes

CWE-192

Integer Coercion Error

Yes

CWE-194

Unexpected Sign Extension

Yes

CWE-195

Signed to Unsigned Conversion Error

Yes

CWE-196

Unsigned to Signed Conversion Error

Yes

CWE-197

Numeric Truncation Error

Yes

CWE-242

Use of Inherently Dangerous Function

Yes

CWE-243

Creation of chroot Jail Without Changing Working Directory

Yes

CWE-244

Improper Clearing of Heap Memory Before Release ('Heap Inspection')

Yes

CWE-362

Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')

Yes

CWE-364

Signal Handler Race Condition

No

CWE-366

Race Condition within a Thread

No

CWE-374

Passing Mutable Objects to an Untrusted Method

Yes

CWE-375

Returning a Mutable Object to an Untrusted Caller

Yes

CWE-401

Missing Release of Memory after Effective Lifetime

Yes

CWE-415

Double Free

No

CWE-416

Use After Free

Yes

CWE-457

Use of Uninitialized Variable

Yes

CWE-460

Improper Cleanup on Thrown Exception

No

CWE-462

Duplicate Key in Associative List (Alist)

No

CWE-463

Deletion of Data Structure Sentinel

No

CWE-464

Addition of Data Structure Sentinel

No

CWE-466

Return of Pointer Value Outside of Expected Range

Yes

CWE-467

Use of sizeof() on a Pointer Type

Yes

CWE-468

Incorrect Pointer Scaling

Yes

CWE-469

Use of Pointer Subtraction to Determine Size

Yes

CWE-474

Use of Function with Inconsistent Implementations

Yes

CWE-476

NULL Pointer Dereference

Yes

CWE-478

Missing Default Case in Multiple Condition Expression

Yes

CWE-479

Signal Handler Use of a Non-reentrant Function

Yes

CWE-480

Use of Incorrect Operator

Yes

CWE-481

Assigning instead of Comparing

Yes

CWE-482

Comparing instead of Assigning

Yes

CWE-483

Incorrect Block Delimitation

Yes

CWE-484

Omitted Break Statement in Switch

Yes

CWE-495

Private Data Structure Returned From A Public Method

No

CWE-496

Public Data Assigned to Private Array-Typed Field

No

CWE-558

Use of getlogin() in Multithreaded Application

Yes

CWE-560

Use of umask() with chmod-style Argument

Yes

CWE-562

Return of Stack Variable Address

Yes

CWE-587

Assignment of a Fixed Address to a Pointer

Yes

CWE-676

Use of Potentially Dangerous Function

Yes

CWE-685

Function Call With Incorrect Number of Arguments

Yes

CWE-688

Function Call With Incorrect Variable or Reference as Argument

No

CWE-689

Permission Race Condition During Resource Copy

No

CWE-690

Unchecked Return Value to NULL Pointer Dereference

Yes

CWE-704

Incorrect Type Conversion or Cast

Yes

CWE-733

Compiler Optimization Removal or Modification of Security-critical Code

NSE

CWE-762

Mismatched Memory Management Routines

No

CWE-781

Improper Address Validation in IOCTL with METHOD_NEITHER I/O Control Code

No

CWE-782

Exposed IOCTL with Insufficient Access Control

No

CWE-783

Operator Precedence Logic Error

Yes

CWE-785

Use of Path Manipulation Function without Maximum-sized Buffer

Yes

CWE-787

Out-of-bounds Write

Yes

CWE-789

Memory Allocation with Excessive Size Value

No

CWE-805

Buffer Access with Incorrect Length Value

Yes

CWE-806

Buffer Access Using Size of Source Buffer

Yes

CWE-839

Numeric Range Comparison Without Minimum Check

No

CWE-843

Access of Resource Using Incompatible Type ('Type Confusion')

Yes

CWE-910

Use of Expired File Descriptor

No

CWE-911

Improper Update of Reference Count

No

CWE-1325

Improperly Controlled Sequential Memory Allocation

No

CWE-1335

Incorrect Bitwise Shift of Integer

No

CWE-1341

Multiple Releases of Same Resource or Handle

No

 

CWE-1154 - Weaknesses Addressed by the SEI CERT C Coding Standard

Rule ID

Description

Enforced

CWE-1155 - Rule 01. Preprocessors (PRE)

 

Yes

CWE-1156 - Rule 02. Declarations and Initialization(DCL)

 

Yes

CWE-562

Return of Stack Variable Address

Yes

CWE-1157 - Rule 03. Expressions (EXP)

 

Yes

CWE-119

Improper Restriction of Operations within the Bounds of a Memory Buffer

Yes

CWE-125

Out-of-bounds Read

Yes

CWE-476

NULL Pointer Dereference

Yes

CWE-480

Use of Incorrect Operator

Yes

CWE-481

Assigning instead of Comparing

Yes

CWE-628

Function Call with Incorrectly Specified Arguments

Yes

CWE-685

Function Call With Incorrect Number of Arguments

Yes

CWE-686

Function Call With Incorrect Argument Type

Yes

CWE-690

Unchecked Return Value to NULL Pointer Dereference

Yes

CWE-704

Incorrect Type Conversion or Cast

Yes

CWE-758

Reliance on Undefined, Unspecified, or Implementation-Defined Behavior

Yes

CWE-843

Access of Resource Using Incompatible Type ('Type Confusion')

Yes

CWE-908

Use of Uninitialized Resource

Yes

CWE-1158 - Rule 04. Integers (INT)

 

Yes

CWE-131

Incorrect Calculation of Buffer Size

Yes

CWE-190

Integer Overflow or Wraparound

Yes

CWE-191

Integer Underflow (Wrap or Wraparound)

Yes

CWE-192

Integer Coercion Error

Yes

CWE-194

Unexpected Sign Extension

Yes

CWE-195

Signed to Unsigned Conversion Error

Yes

CWE-197

Numeric Truncation Error

Yes

CWE-369

Divide By Zero

Yes

CWE-587

Assignment of a Fixed Address to a Pointer

Yes

CWE-680

Integer Overflow to Buffer Overflow

Yes

CWE-681

Incorrect Conversion between Numeric Types

Yes

CWE-682

Incorrect Calculation

Yes

CWE-704

Incorrect Type Conversion or Cast

Yes

CWE-758

Reliance on Undefined, Unspecified, or Implementation-Defined Behavior

Yes

CWE-1159 - Rule 05. Floating Point (FLP)

 

Yes

CWE-197

Numeric Truncation Error

Yes

CWE-391

Unchecked Error Condition

Yes

CWE-681

Incorrect Conversion between Numeric Types

Yes

CWE-682

Incorrect Calculation

Yes

CWE-1160 - Rule 06. Arrays(ARR)

 

Yes

CWE-119

Improper Restriction of Operations within the Bounds of a Memory Buffer

Yes

CWE-121

Stack-based Buffer Overflow

Yes

CWE-123

Write-what-where Condition

No

CWE-125

Out-of-bounds Read

Yes

CWE-129

Improper Validation of Array Index

Yes

CWE-468

Incorrect Pointer Scaling

Yes

CWE-469

Use of Pointer Subtraction to Determine Size

Yes

CWE-758

Reliance on Undefined, Unspecified, or Implementation-Defined Behavior

Yes

CWE-786

Access of Memory Location Before Start of Buffer

Yes

CWE-805

Buffer Access with Incorrect Length Value

Yes

CWE-1161 - Rule 07. Characters and String (STR)

 

Yes

CWE-119

Improper Restriction of Operations within the Bounds of a Memory Buffer

Yes

CWE-120

Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')

Yes

CWE-121

Stack-based Buffer Overflow

Yes

CWE-122

Heap-based Buffer Overflow

Yes

CWE-123

Write-what-where Condition

No

CWE-125

Out-of-bounds Read

Yes

CWE-170

Improper Null Termination

Yes

CWE-676

Use of Potentially Dangerous Function

Yes

CWE-704

Incorrect Type Conversion or Cast

Yes

CWE-1162 - Rule 08. Memory management (MEM)

 

Yes

CWE-131

Incorrect Calculation of Buffer Size

Yes

CWE-190

Integer Overflow or Wraparound

Yes

CWE-401

Missing Release of Memory after Effective Lifetime

Yes

CWE-404

Improper Resource Shutdown or Release

No

CWE-415

Double Free

No

CWE-416

Use After Free

Yes

CWE-459

Incomplete Cleanup

No

CWE-467

Use of sizeof() on a Pointer Type

Yes

CWE-590

Free of Memory not on the Heap

No

CWE-666

Operation on Resource in Wrong Phase of Lifetime

No

CWE-672

Operation on a Resource after Expiration or Release

No

CWE-680

Integer Overflow to Buffer Overflow

Yes

CWE-758

Reliance on Undefined, Unspecified, or Implementation-Defined Behavior

Yes

CWE-771

Missing Reference to Active Allocated Resource

No

CWE-772

Missing Release of Resource after Effective Lifetime

No

CWE-789

Memory Allocation with Excessive Size Value

No

CWE-1163- Rule 09. Input Output (FIO)

 

Yes

CWE-20

Improper Input Validation

Yes

CWE-67

Improper Handling of Windows Device Names

No

CWE-134

Use of Externally-Controlled Format String

Yes

CWE-197

Numeric Truncation Error

Yes

CWE-241

Improper Handling of Unexpected Data Type

No

CWE-404

Improper Resource Shutdown or Release

No

CWE-459

Incomplete Cleanup

No

CWE-664

Improper Control of a Resource Through its Lifetime

No

CWE-666

Operation on Resource in Wrong Phase of Lifetime

No

CWE-672

Operation on a Resource after Expiration or Release

No

CWE-685

Function Call With Incorrect Number of Arguments

Yes

CWE-686

Function Call With Incorrect Argument Type

Yes

CWE-758

Reliance on Undefined, Unspecified, or Implementation-Defined Behavior

Yes

CWE-771

Missing Reference to Active Allocated Resource

No

CWE-772

Missing Release of Resource after Effective Lifetime

No

CWE-773

Missing Reference to Active File Descriptor or Handle

No

CWE-775

Missing Release of File Descriptor or Handle after Effective Lifetime

No

CWE-910

Use of Expired File Descriptor

No

CWE-1165 - Rule 10. Environment (ENV)

 

Yes

CWE-78

Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')

Yes

CWE-88

Improper Neutralization of Argument Delimiters in a Command ('Argument Injection')

Yes

CWE-676

Use of Potentially Dangerous Function

Yes

CWE-705

Incorrect Control Flow Scoping

Yes

CWE-1166 - Rule 11. Signals (SIG)

 

Yes

CWE-479

Signal Handler Use of a Non-reentrant Function

Yes

CWE-662

Improper Synchronization

No

CWE-1167 - Rule 12. Error Handling (ERR)

 

Yes

CWE-252

Unchecked Return Value

Yes

CWE-253

Incorrect Check of Function Return Value

Yes

CWE-391

Unchecked Error Condition

Yes

CWE-456

Missing Initialization of a Variable

Yes

CWE-676

Use of Potentially Dangerous Function

Yes

CWE-758

Reliance on Undefined, Unspecified, or Implementation-Defined Behavior

Yes

CWE-1169 - Rule 14. Concurrency (CON)

 

No

CWE-330

Use of Insufficiently Random Values

No

CWE-366

Race Condition within a Thread

No

CWE-377

Insecure Temporary File

No

CWE-667

Improper Locking

No

CWE-676

Use of Potentially Dangerous Function

Yes

CWE-1170 - Rule 48. Miscellaneous (MISC)

 

No

CWE-327

Use of a Broken or Risky Cryptographic Algorithm

Yes

CWE-330

Use of Insufficiently Random Values

No

CWE-331

Insufficient Entropy

No

CWE-338

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

Yes

CWE-676

Use of Potentially Dangerous Function

Yes

CWE-758

Reliance on Undefined, Unspecified, or Implementation-Defined Behavior

Yes

CWE-1171 - Rule 50. POSIX(POS)

 

Yes

CWE-242

Use of Inherently Dangerous Function

Yes

CWE-252

Unchecked Return Value

Yes

CWE-253

Incorrect Check of Function Return Value

Yes

CWE-273

Improper Check for Dropped Privileges

Yes

CWE-363

Race Condition Enabling Link Following

No

CWE-391

Unchecked Error Condition

Yes

CWE-667

Improper Locking

No

CWE-696

Incorrect Behavior Order

No