CWE VIEW: Weaknesses Addressed by the CERT C Secure Coding Standard (2008)
CWE entries in this view (graph) are fully or partially eliminated by following the guidance presented in the book "The CERT C Secure Coding Standard" published in 2008. This view is considered obsolete, as a newer version of the coding standard is available. This view statically represents the coding rules as they were in 2008.
The following graph shows the tree-like relationships between
weaknesses that exist at different levels of abstraction. At the highest level, categories
and pillars exist to group weaknesses. Categories (which are not technically weaknesses) are
special CWE entries used to group weaknesses that share a common characteristic. Pillars are
weaknesses that are described in the most abstract fashion. Below these top-level entries
are weaknesses are varying levels of abstraction. Classes are still very abstract, typically
independent of any specific language or technology. Base level weaknesses are used to
present a more specific type of weakness. A variant is a weakness that is described at a
very low level of detail, typically limited to a specific language or technology. A chain is
a set of weaknesses that must be reachable consecutively in order to produce an exploitable
vulnerability. While a composite is a set of weaknesses that must all be present
simultaneously in order to produce an exploitable vulnerability.
Show Details:
734 - Weaknesses Addressed by the CERT C Secure Coding Standard (2008)
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
735
(CERT C Secure Coding Standard (2008) Chapter 2 - Preprocessor (PRE))
Weaknesses in this category are related to the rules and recommendations in the Preprocessor (PRE) chapter of the CERT C Secure Coding Standard (2008).
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
735
(CERT C Secure Coding Standard (2008) Chapter 2 - Preprocessor (PRE)) >
684
(Incorrect Provision of Specified Functionality)
The code does not function according to its published specifications, potentially leading to incorrect usage.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
736
(CERT C Secure Coding Standard (2008) Chapter 3 - Declarations and Initialization (DCL))
Weaknesses in this category are related to the rules and recommendations in the Declarations and Initialization (DCL) chapter of the CERT C Secure Coding Standard (2008).
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
736
(CERT C Secure Coding Standard (2008) Chapter 3 - Declarations and Initialization (DCL)) >
547
(Use of Hard-coded, Security-relevant Constants)
The product uses hard-coded constants instead of symbolic names for security-critical values, which increases the likelihood of mistakes during code maintenance or security policy change.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
736
(CERT C Secure Coding Standard (2008) Chapter 3 - Declarations and Initialization (DCL)) >
628
(Function Call with Incorrectly Specified Arguments)
The product calls a function, procedure, or routine with arguments that are not correctly specified, leading to always-incorrect behavior and resultant weaknesses.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
736
(CERT C Secure Coding Standard (2008) Chapter 3 - Declarations and Initialization (DCL)) >
686
(Function Call With Incorrect Argument Type)
The product calls a function, procedure, or routine, but the caller specifies an argument that is the wrong data type, which may lead to resultant weaknesses.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
737
(CERT C Secure Coding Standard (2008) Chapter 4 - Expressions (EXP))
Weaknesses in this category are related to the rules and recommendations in the Expressions (EXP) chapter of the CERT C Secure Coding Standard (2008).
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
737
(CERT C Secure Coding Standard (2008) Chapter 4 - Expressions (EXP)) >
467
(Use of sizeof() on a Pointer Type)
The code calls sizeof() on a pointer type, which can be an incorrect calculation if the programmer intended to determine the size of the data that is being pointed to.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
737
(CERT C Secure Coding Standard (2008) Chapter 4 - Expressions (EXP)) >
468
(Incorrect Pointer Scaling)
In C and C++, one may often accidentally refer to the wrong memory due to the semantics of when math operations are implicitly scaled.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
737
(CERT C Secure Coding Standard (2008) Chapter 4 - Expressions (EXP)) >
476
(NULL Pointer Dereference)
The product dereferences a pointer that it expects to be valid but is NULL.
NPD
null deref
NPE
nil pointer dereference
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
737
(CERT C Secure Coding Standard (2008) Chapter 4 - Expressions (EXP)) >
628
(Function Call with Incorrectly Specified Arguments)
The product calls a function, procedure, or routine with arguments that are not correctly specified, leading to always-incorrect behavior and resultant weaknesses.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
737
(CERT C Secure Coding Standard (2008) Chapter 4 - Expressions (EXP)) >
704
(Incorrect Type Conversion or Cast)
The product does not correctly convert an object, resource, or structure from one type to a different type.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
737
(CERT C Secure Coding Standard (2008) Chapter 4 - Expressions (EXP)) >
783
(Operator Precedence Logic Error)
The product uses an expression in which operator precedence causes incorrect logic to be used.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
738
(CERT C Secure Coding Standard (2008) Chapter 5 - Integers (INT))
Weaknesses in this category are related to the rules and recommendations in the Integers (INT) chapter of the CERT C Secure Coding Standard (2008).
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
738
(CERT C Secure Coding Standard (2008) Chapter 5 - Integers (INT)) >
129
(Improper Validation of Array Index)
The product uses untrusted input when calculating or using an array index, but the product does not validate or incorrectly validates the index to ensure the index references a valid position within the array.
out-of-bounds array index
index-out-of-range
array index underflow
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
738
(CERT C Secure Coding Standard (2008) Chapter 5 - Integers (INT)) >
190
(Integer Overflow or Wraparound)
The product performs a calculation that can
produce an integer overflow or wraparound when the logic
assumes that the resulting value will always be larger than
the original value. This occurs when an integer value is
incremented to a value that is too large to store in the
associated representation. When this occurs, the value may
become a very small or negative number.
Overflow
Wraparound
wrap, wrap-around, wrap around
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
738
(CERT C Secure Coding Standard (2008) Chapter 5 - Integers (INT)) >
192
(Integer Coercion Error)
Integer coercion refers to a set of flaws pertaining to the type casting, extension, or truncation of primitive data types.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
738
(CERT C Secure Coding Standard (2008) Chapter 5 - Integers (INT)) >
197
(Numeric Truncation Error)
Truncation errors occur when a primitive is cast to a primitive of a smaller size and data is lost in the conversion.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
738
(CERT C Secure Coding Standard (2008) Chapter 5 - Integers (INT)) >
20
(Improper Input Validation)
The product receives input or data, but it does
not validate or incorrectly validates that the input has the
properties that are required to process the data safely and
correctly.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
738
(CERT C Secure Coding Standard (2008) Chapter 5 - Integers (INT)) >
369
(Divide By Zero)
The product divides a value by zero.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
738
(CERT C Secure Coding Standard (2008) Chapter 5 - Integers (INT)) >
466
(Return of Pointer Value Outside of Expected Range)
A function can return a pointer to memory that is outside of the buffer that the pointer is expected to reference.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
738
(CERT C Secure Coding Standard (2008) Chapter 5 - Integers (INT)) >
587
(Assignment of a Fixed Address to a Pointer)
The product sets a pointer to a specific address other than NULL or 0.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
738
(CERT C Secure Coding Standard (2008) Chapter 5 - Integers (INT)) >
606
(Unchecked Input for Loop Condition)
The product does not properly check inputs that are used for loop conditions, potentially leading to a denial of service or other consequences because of excessive looping.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
738
(CERT C Secure Coding Standard (2008) Chapter 5 - Integers (INT)) >
676
(Use of Potentially Dangerous Function)
The product invokes a potentially dangerous function that could introduce a vulnerability if it is used incorrectly, but the function can also be used safely.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
738
(CERT C Secure Coding Standard (2008) Chapter 5 - Integers (INT)) >
681
(Incorrect Conversion between Numeric Types)
When converting from one data type to another, such as long to integer, data can be omitted or translated in a way that produces unexpected values. If the resulting values are used in a sensitive context, then dangerous behaviors may occur.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
738
(CERT C Secure Coding Standard (2008) Chapter 5 - Integers (INT)) >
682
(Incorrect Calculation)
The product performs a calculation that generates incorrect or unintended results that are later used in security-critical decisions or resource management.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
739
(CERT C Secure Coding Standard (2008) Chapter 6 - Floating Point (FLP))
Weaknesses in this category are related to the rules and recommendations in the Floating Point (FLP) chapter of the CERT C Secure Coding Standard (2008).
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
739
(CERT C Secure Coding Standard (2008) Chapter 6 - Floating Point (FLP)) >
369
(Divide By Zero)
The product divides a value by zero.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
739
(CERT C Secure Coding Standard (2008) Chapter 6 - Floating Point (FLP)) >
681
(Incorrect Conversion between Numeric Types)
When converting from one data type to another, such as long to integer, data can be omitted or translated in a way that produces unexpected values. If the resulting values are used in a sensitive context, then dangerous behaviors may occur.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
739
(CERT C Secure Coding Standard (2008) Chapter 6 - Floating Point (FLP)) >
682
(Incorrect Calculation)
The product performs a calculation that generates incorrect or unintended results that are later used in security-critical decisions or resource management.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
739
(CERT C Secure Coding Standard (2008) Chapter 6 - Floating Point (FLP)) >
686
(Function Call With Incorrect Argument Type)
The product calls a function, procedure, or routine, but the caller specifies an argument that is the wrong data type, which may lead to resultant weaknesses.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
740
(CERT C Secure Coding Standard (2008) Chapter 7 - Arrays (ARR))
Weaknesses in this category are related to the rules and recommendations in the Arrays (ARR) chapter of the CERT C Secure Coding Standard (2008).
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
740
(CERT C Secure Coding Standard (2008) Chapter 7 - Arrays (ARR)) >
119
(Improper Restriction of Operations within the Bounds of a Memory Buffer)
The product performs operations on a memory buffer, but it reads from or writes to a memory location outside the buffer's intended boundary. This may result in read or write operations on unexpected memory locations that could be linked to other variables, data structures, or internal program data.
Buffer Overflow
buffer overrun
memory safety
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
740
(CERT C Secure Coding Standard (2008) Chapter 7 - Arrays (ARR)) >
129
(Improper Validation of Array Index)
The product uses untrusted input when calculating or using an array index, but the product does not validate or incorrectly validates the index to ensure the index references a valid position within the array.
out-of-bounds array index
index-out-of-range
array index underflow
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
740
(CERT C Secure Coding Standard (2008) Chapter 7 - Arrays (ARR)) >
467
(Use of sizeof() on a Pointer Type)
The code calls sizeof() on a pointer type, which can be an incorrect calculation if the programmer intended to determine the size of the data that is being pointed to.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
740
(CERT C Secure Coding Standard (2008) Chapter 7 - Arrays (ARR)) >
469
(Use of Pointer Subtraction to Determine Size)
The product subtracts one pointer from another in order to determine size, but this calculation can be incorrect if the pointers do not exist in the same memory chunk.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
740
(CERT C Secure Coding Standard (2008) Chapter 7 - Arrays (ARR)) >
665
(Improper Initialization)
The product does not initialize or incorrectly initializes a resource, which might leave the resource in an unexpected state when it is accessed or used.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
740
(CERT C Secure Coding Standard (2008) Chapter 7 - Arrays (ARR)) >
805
(Buffer Access with Incorrect Length Value)
The product uses a sequential operation to read or write a buffer, but it uses an incorrect length value that causes it to access memory that is outside of the bounds of the buffer.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
741
(CERT C Secure Coding Standard (2008) Chapter 8 - Characters and Strings (STR))
Weaknesses in this category are related to the rules and recommendations in the Characters and Strings (STR) chapter of the CERT C Secure Coding Standard (2008).
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
741
(CERT C Secure Coding Standard (2008) Chapter 8 - Characters and Strings (STR)) >
119
(Improper Restriction of Operations within the Bounds of a Memory Buffer)
The product performs operations on a memory buffer, but it reads from or writes to a memory location outside the buffer's intended boundary. This may result in read or write operations on unexpected memory locations that could be linked to other variables, data structures, or internal program data.
Buffer Overflow
buffer overrun
memory safety
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
741
(CERT C Secure Coding Standard (2008) Chapter 8 - Characters and Strings (STR)) >
120
(Buffer Copy without Checking Size of Input ('Classic Buffer Overflow'))
The product copies an input buffer to an output buffer without verifying that the size of the input buffer is less than the size of the output buffer, leading to a buffer overflow.
Classic Buffer Overflow
Unbounded Transfer
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
741
(CERT C Secure Coding Standard (2008) Chapter 8 - Characters and Strings (STR)) >
135
(Incorrect Calculation of Multi-Byte String Length)
The product does not correctly calculate the length of strings that can contain wide or multi-byte characters.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
741
(CERT C Secure Coding Standard (2008) Chapter 8 - Characters and Strings (STR)) >
170
(Improper Null Termination)
The product does not terminate or incorrectly terminates a string or array with a null character or equivalent terminator.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
741
(CERT C Secure Coding Standard (2008) Chapter 8 - Characters and Strings (STR)) >
193
(Off-by-one Error)
A product calculates or uses an incorrect maximum or minimum value that is 1 more, or 1 less, than the correct value.
off-by-five
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
741
(CERT C Secure Coding Standard (2008) Chapter 8 - Characters and Strings (STR)) >
464
(Addition of Data Structure Sentinel)
The accidental addition of a data-structure sentinel can cause serious programming logic problems.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
741
(CERT C Secure Coding Standard (2008) Chapter 8 - Characters and Strings (STR)) >
686
(Function Call With Incorrect Argument Type)
The product calls a function, procedure, or routine, but the caller specifies an argument that is the wrong data type, which may lead to resultant weaknesses.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
741
(CERT C Secure Coding Standard (2008) Chapter 8 - Characters and Strings (STR)) >
704
(Incorrect Type Conversion or Cast)
The product does not correctly convert an object, resource, or structure from one type to a different type.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
741
(CERT C Secure Coding Standard (2008) Chapter 8 - Characters and Strings (STR)) >
78
(Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection'))
The product constructs all or part of an OS command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended OS command when it is sent to a downstream component.
Shell injection
Shell metacharacters
OS Command Injection
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
741
(CERT C Secure Coding Standard (2008) Chapter 8 - Characters and Strings (STR)) >
88
(Improper Neutralization of Argument Delimiters in a Command ('Argument Injection'))
The product constructs a string for a command to be executed by a separate component
in another control sphere, but it does not properly delimit the
intended arguments, options, or switches within that command string.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
742
(CERT C Secure Coding Standard (2008) Chapter 9 - Memory Management (MEM))
Weaknesses in this category are related to the rules and recommendations in the Memory Management (MEM) chapter of the CERT C Secure Coding Standard (2008).
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
742
(CERT C Secure Coding Standard (2008) Chapter 9 - Memory Management (MEM)) >
119
(Improper Restriction of Operations within the Bounds of a Memory Buffer)
The product performs operations on a memory buffer, but it reads from or writes to a memory location outside the buffer's intended boundary. This may result in read or write operations on unexpected memory locations that could be linked to other variables, data structures, or internal program data.
Buffer Overflow
buffer overrun
memory safety
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
742
(CERT C Secure Coding Standard (2008) Chapter 9 - Memory Management (MEM)) >
128
(Wrap-around Error)
Wrap around errors occur whenever a value is incremented past the maximum value for its type and therefore "wraps around" to a very small, negative, or undefined value.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
742
(CERT C Secure Coding Standard (2008) Chapter 9 - Memory Management (MEM)) >
131
(Incorrect Calculation of Buffer Size)
The product does not correctly calculate the size to be used when allocating a buffer, which could lead to a buffer overflow.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
742
(CERT C Secure Coding Standard (2008) Chapter 9 - Memory Management (MEM)) >
190
(Integer Overflow or Wraparound)
The product performs a calculation that can
produce an integer overflow or wraparound when the logic
assumes that the resulting value will always be larger than
the original value. This occurs when an integer value is
incremented to a value that is too large to store in the
associated representation. When this occurs, the value may
become a very small or negative number.
Overflow
Wraparound
wrap, wrap-around, wrap around
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
742
(CERT C Secure Coding Standard (2008) Chapter 9 - Memory Management (MEM)) >
20
(Improper Input Validation)
The product receives input or data, but it does
not validate or incorrectly validates that the input has the
properties that are required to process the data safely and
correctly.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
742
(CERT C Secure Coding Standard (2008) Chapter 9 - Memory Management (MEM)) >
226
(Sensitive Information in Resource Not Removed Before Reuse)
The product releases a resource such as memory or a file so that it can be made available for reuse, but it does not clear or "zeroize" the information contained in the resource before the product performs a critical state transition or makes the resource available for reuse by other entities.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
742
(CERT C Secure Coding Standard (2008) Chapter 9 - Memory Management (MEM)) >
244
(Improper Clearing of Heap Memory Before Release ('Heap Inspection'))
Using realloc() to resize buffers that store sensitive information can leave the sensitive information exposed to attack, because it is not removed from memory.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
742
(CERT C Secure Coding Standard (2008) Chapter 9 - Memory Management (MEM)) >
252
(Unchecked Return Value)
The product does not check the return value from a method or function, which can prevent it from detecting unexpected states and conditions.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
742
(CERT C Secure Coding Standard (2008) Chapter 9 - Memory Management (MEM)) >
415
(Double Free)
The product calls free() twice on the same memory address, potentially leading to modification of unexpected memory locations.
Double-free
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
742
(CERT C Secure Coding Standard (2008) Chapter 9 - Memory Management (MEM)) >
416
(Use After Free)
The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory "belongs" to the code that operates on the new pointer.
Dangling pointer
UAF
Use-After-Free
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
742
(CERT C Secure Coding Standard (2008) Chapter 9 - Memory Management (MEM)) >
476
(NULL Pointer Dereference)
The product dereferences a pointer that it expects to be valid but is NULL.
NPD
null deref
NPE
nil pointer dereference
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
742
(CERT C Secure Coding Standard (2008) Chapter 9 - Memory Management (MEM)) >
528
(Exposure of Core Dump File to an Unauthorized Control Sphere)
The product generates a core dump file in a directory, archive, or other resource that is stored, transferred, or otherwise made accessible to unauthorized actors.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
742
(CERT C Secure Coding Standard (2008) Chapter 9 - Memory Management (MEM)) >
590
(Free of Memory not on the Heap)
The product calls free() on a pointer to memory that was not allocated using associated heap allocation functions such as malloc(), calloc(), or realloc().
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
742
(CERT C Secure Coding Standard (2008) Chapter 9 - Memory Management (MEM)) >
591
(Sensitive Data Storage in Improperly Locked Memory)
The product stores sensitive data in memory that is not locked, or that has been incorrectly locked, which might cause the memory to be written to swap files on disk by the virtual memory manager. This can make the data more accessible to external actors.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
742
(CERT C Secure Coding Standard (2008) Chapter 9 - Memory Management (MEM)) >
628
(Function Call with Incorrectly Specified Arguments)
The product calls a function, procedure, or routine with arguments that are not correctly specified, leading to always-incorrect behavior and resultant weaknesses.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
742
(CERT C Secure Coding Standard (2008) Chapter 9 - Memory Management (MEM)) >
665
(Improper Initialization)
The product does not initialize or incorrectly initializes a resource, which might leave the resource in an unexpected state when it is accessed or used.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
742
(CERT C Secure Coding Standard (2008) Chapter 9 - Memory Management (MEM)) >
687
(Function Call With Incorrectly Specified Argument Value)
The product calls a function, procedure, or routine, but the caller specifies an argument that contains the wrong value, which may lead to resultant weaknesses.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
742
(CERT C Secure Coding Standard (2008) Chapter 9 - Memory Management (MEM)) >
754
(Improper Check for Unusual or Exceptional Conditions)
The product does not check or incorrectly checks for unusual or exceptional conditions that are not expected to occur frequently during day to day operation of the product.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO))
Weaknesses in this category are related to the rules and recommendations in the Input Output (FIO) chapter of the CERT C Secure Coding Standard (2008).
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
119
(Improper Restriction of Operations within the Bounds of a Memory Buffer)
The product performs operations on a memory buffer, but it reads from or writes to a memory location outside the buffer's intended boundary. This may result in read or write operations on unexpected memory locations that could be linked to other variables, data structures, or internal program data.
Buffer Overflow
buffer overrun
memory safety
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
134
(Use of Externally-Controlled Format String)
The product uses a function that accepts a format string as an argument, but the format string originates from an external source.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
22
(Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal'))
The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.
Directory traversal
Path traversal
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
241
(Improper Handling of Unexpected Data Type)
The product does not handle or incorrectly handles when a particular element is not the expected type, e.g. it expects a digit (0-9) but is provided with a letter (A-Z).
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
276
(Incorrect Default Permissions)
During installation, installed file permissions are set to allow anyone to modify those files.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
279
(Incorrect Execution-Assigned Permissions)
While it is executing, the product sets the permissions of an object in a way that violates the intended permissions that have been specified by the user.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
362
(Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition'))
The product contains a concurrent code sequence that requires temporary, exclusive access to a shared resource, but a timing window exists in which the shared resource can be modified by another code sequence operating concurrently.
Race Condition
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
367
(Time-of-check Time-of-use (TOCTOU) Race Condition)
The product checks the state of a resource before using that resource, but the resource's state can change between the check and the use in a way that invalidates the results of the check. This can cause the product to perform invalid actions when the resource is in an unexpected state.
TOCTTOU
TOCCTOU
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
37
(Path Traversal: '/absolute/pathname/here')
The product accepts input in the form of a slash absolute path ('/absolute/pathname/here') without appropriate validation, which can allow an attacker to traverse the file system to unintended locations or access arbitrary files.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
379
(Creation of Temporary File in Directory with Insecure Permissions)
The product creates a temporary file in a directory whose permissions allow unintended actors to determine the file's existence or otherwise access that file.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
38
(Path Traversal: '\absolute\pathname\here')
The product accepts input in the form of a backslash absolute path ('\absolute\pathname\here') without appropriate validation, which can allow an attacker to traverse the file system to unintended locations or access arbitrary files.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
39
(Path Traversal: 'C:dirname')
The product accepts input that contains a drive letter or Windows volume letter ('C:dirname') that potentially redirects access to an unintended location or arbitrary file.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
391
(Unchecked Error Condition)
[PLANNED FOR DEPRECATION. SEE MAINTENANCE NOTES AND CONSIDER CWE-252, CWE-248, OR CWE-1069.] Ignoring exceptions and other error conditions may allow an attacker to induce unexpected behavior unnoticed.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
403
(Exposure of File Descriptor to Unintended Control Sphere ('File Descriptor Leak'))
A process does not close sensitive file descriptors before invoking a child process, which allows the child to perform unauthorized I/O operations using those descriptors.
File descriptor leak
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
404
(Improper Resource Shutdown or Release)
The product does not release or incorrectly releases a resource before it is made available for re-use.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
41
(Improper Resolution of Path Equivalence)
The product is vulnerable to file system contents disclosure through path equivalence. Path equivalence involves the use of special characters in file and directory names. The associated manipulations are intended to generate multiple names for the same object.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
552
(Files or Directories Accessible to External Parties)
The product makes files or directories accessible to unauthorized actors, even though they should not be.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
59
(Improper Link Resolution Before File Access ('Link Following'))
The product attempts to access a file based on the filename, but it does not properly prevent that filename from identifying a link or shortcut that resolves to an unintended resource.
insecure temporary file
Zip Slip
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
62
(UNIX Hard Link)
The product, when opening a file or directory, does not sufficiently account for when the name is associated with a hard link to a target that is outside of the intended control sphere. This could allow an attacker to cause the product to operate on unauthorized files.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
64
(Windows Shortcut Following (.LNK))
The product, when opening a file or directory, does not sufficiently handle when the file is a Windows shortcut (.LNK) whose target is outside of the intended control sphere. This could allow an attacker to cause the product to operate on unauthorized files.
Windows symbolic link following
symlink
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
65
(Windows Hard Link)
The product, when opening a file or directory, does not sufficiently handle when the name is associated with a hard link to a target that is outside of the intended control sphere. This could allow an attacker to cause the product to operate on unauthorized files.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
67
(Improper Handling of Windows Device Names)
The product constructs pathnames from user input, but it does not handle or incorrectly handles a pathname containing a Windows device name such as AUX or CON. This typically leads to denial of service or an information exposure when the application attempts to process the pathname as a regular file.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
675
(Multiple Operations on Resource in Single-Operation Context)
The product performs the same operation on a resource two or more times, when the operation should only be applied once.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
676
(Use of Potentially Dangerous Function)
The product invokes a potentially dangerous function that could introduce a vulnerability if it is used incorrectly, but the function can also be used safely.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
686
(Function Call With Incorrect Argument Type)
The product calls a function, procedure, or routine, but the caller specifies an argument that is the wrong data type, which may lead to resultant weaknesses.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
743
(CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)) >
732
(Incorrect Permission Assignment for Critical Resource)
The product specifies permissions for a security-critical resource in a way that allows that resource to be read or modified by unintended actors.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
744
(CERT C Secure Coding Standard (2008) Chapter 11 - Environment (ENV))
Weaknesses in this category are related to the rules and recommendations in the Environment (ENV) chapter of the CERT C Secure Coding Standard (2008).
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
744
(CERT C Secure Coding Standard (2008) Chapter 11 - Environment (ENV)) >
119
(Improper Restriction of Operations within the Bounds of a Memory Buffer)
The product performs operations on a memory buffer, but it reads from or writes to a memory location outside the buffer's intended boundary. This may result in read or write operations on unexpected memory locations that could be linked to other variables, data structures, or internal program data.
Buffer Overflow
buffer overrun
memory safety
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
744
(CERT C Secure Coding Standard (2008) Chapter 11 - Environment (ENV)) >
426
(Untrusted Search Path)
The product searches for critical resources using an externally-supplied search path that can point to resources that are not under the product's direct control.
Untrusted Path
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
744
(CERT C Secure Coding Standard (2008) Chapter 11 - Environment (ENV)) >
462
(Duplicate Key in Associative List (Alist))
Duplicate keys in associative lists can lead to non-unique keys being mistaken for an error.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
744
(CERT C Secure Coding Standard (2008) Chapter 11 - Environment (ENV)) >
705
(Incorrect Control Flow Scoping)
The product does not properly return control flow to the proper location after it has completed a task or detected an unusual condition.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
744
(CERT C Secure Coding Standard (2008) Chapter 11 - Environment (ENV)) >
78
(Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection'))
The product constructs all or part of an OS command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended OS command when it is sent to a downstream component.
Shell injection
Shell metacharacters
OS Command Injection
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
744
(CERT C Secure Coding Standard (2008) Chapter 11 - Environment (ENV)) >
88
(Improper Neutralization of Argument Delimiters in a Command ('Argument Injection'))
The product constructs a string for a command to be executed by a separate component
in another control sphere, but it does not properly delimit the
intended arguments, options, or switches within that command string.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
745
(CERT C Secure Coding Standard (2008) Chapter 12 - Signals (SIG))
Weaknesses in this category are related to the rules and recommendations in the Signals (SIG) chapter of the CERT C Secure Coding Standard (2008).
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
745
(CERT C Secure Coding Standard (2008) Chapter 12 - Signals (SIG)) >
479
(Signal Handler Use of a Non-reentrant Function)
The product defines a signal handler that calls a non-reentrant function.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
745
(CERT C Secure Coding Standard (2008) Chapter 12 - Signals (SIG)) >
662
(Improper Synchronization)
The product utilizes multiple threads or processes to allow temporary access to a shared resource that can only be exclusive to one process at a time, but it does not properly synchronize these actions, which might cause simultaneous accesses of this resource by multiple threads or processes.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
746
(CERT C Secure Coding Standard (2008) Chapter 13 - Error Handling (ERR))
Weaknesses in this category are related to the rules and recommendations in the Error Handling (ERR) chapter of the CERT C Secure Coding Standard (2008).
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
746
(CERT C Secure Coding Standard (2008) Chapter 13 - Error Handling (ERR)) >
20
(Improper Input Validation)
The product receives input or data, but it does
not validate or incorrectly validates that the input has the
properties that are required to process the data safely and
correctly.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
746
(CERT C Secure Coding Standard (2008) Chapter 13 - Error Handling (ERR)) >
391
(Unchecked Error Condition)
[PLANNED FOR DEPRECATION. SEE MAINTENANCE NOTES AND CONSIDER CWE-252, CWE-248, OR CWE-1069.] Ignoring exceptions and other error conditions may allow an attacker to induce unexpected behavior unnoticed.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
746
(CERT C Secure Coding Standard (2008) Chapter 13 - Error Handling (ERR)) >
544
(Missing Standardized Error Handling Mechanism)
The product does not use a standardized method for handling errors throughout the code, which might introduce inconsistent error handling and resultant weaknesses.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
746
(CERT C Secure Coding Standard (2008) Chapter 13 - Error Handling (ERR)) >
676
(Use of Potentially Dangerous Function)
The product invokes a potentially dangerous function that could introduce a vulnerability if it is used incorrectly, but the function can also be used safely.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
746
(CERT C Secure Coding Standard (2008) Chapter 13 - Error Handling (ERR)) >
705
(Incorrect Control Flow Scoping)
The product does not properly return control flow to the proper location after it has completed a task or detected an unusual condition.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
747
(CERT C Secure Coding Standard (2008) Chapter 14 - Miscellaneous (MSC))
Weaknesses in this category are related to the rules and recommendations in the Miscellaneous (MSC) chapter of the CERT C Secure Coding Standard (2008).
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
747
(CERT C Secure Coding Standard (2008) Chapter 14 - Miscellaneous (MSC)) >
14
(Compiler Removal of Code to Clear Buffers)
Sensitive memory is cleared according to the source code, but compiler optimizations leave the memory untouched when it is not read from again, aka "dead store removal."
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
747
(CERT C Secure Coding Standard (2008) Chapter 14 - Miscellaneous (MSC)) >
176
(Improper Handling of Unicode Encoding)
The product does not properly handle when an input contains Unicode encoding.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
747
(CERT C Secure Coding Standard (2008) Chapter 14 - Miscellaneous (MSC)) >
20
(Improper Input Validation)
The product receives input or data, but it does
not validate or incorrectly validates that the input has the
properties that are required to process the data safely and
correctly.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
747
(CERT C Secure Coding Standard (2008) Chapter 14 - Miscellaneous (MSC)) >
330
(Use of Insufficiently Random Values)
The product uses insufficiently random numbers or values in a security context that depends on unpredictable numbers.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
747
(CERT C Secure Coding Standard (2008) Chapter 14 - Miscellaneous (MSC)) >
480
(Use of Incorrect Operator)
The product accidentally uses the wrong operator, which changes the logic in security-relevant ways.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
747
(CERT C Secure Coding Standard (2008) Chapter 14 - Miscellaneous (MSC)) >
482
(Comparing instead of Assigning)
The code uses an operator for comparison when the intention was to perform an assignment.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
747
(CERT C Secure Coding Standard (2008) Chapter 14 - Miscellaneous (MSC)) >
561
(Dead Code)
The product contains dead code, which can never be executed.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
747
(CERT C Secure Coding Standard (2008) Chapter 14 - Miscellaneous (MSC)) >
563
(Assignment to Variable without Use)
The variable's value is assigned but never used, making it a dead store.
Unused Variable
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
747
(CERT C Secure Coding Standard (2008) Chapter 14 - Miscellaneous (MSC)) >
570
(Expression is Always False)
The product contains an expression that will always evaluate to false.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
747
(CERT C Secure Coding Standard (2008) Chapter 14 - Miscellaneous (MSC)) >
571
(Expression is Always True)
The product contains an expression that will always evaluate to true.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
747
(CERT C Secure Coding Standard (2008) Chapter 14 - Miscellaneous (MSC)) >
697
(Incorrect Comparison)
The product compares two entities in a security-relevant context, but the comparison is incorrect, which may lead to resultant weaknesses.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
747
(CERT C Secure Coding Standard (2008) Chapter 14 - Miscellaneous (MSC)) >
704
(Incorrect Type Conversion or Cast)
The product does not correctly convert an object, resource, or structure from one type to a different type.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
748
(CERT C Secure Coding Standard (2008) Appendix - POSIX (POS))
Weaknesses in this category are related to the rules and recommendations in the POSIX (POS) appendix of the CERT C Secure Coding Standard (2008).
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
748
(CERT C Secure Coding Standard (2008) Appendix - POSIX (POS)) >
170
(Improper Null Termination)
The product does not terminate or incorrectly terminates a string or array with a null character or equivalent terminator.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
748
(CERT C Secure Coding Standard (2008) Appendix - POSIX (POS)) >
242
(Use of Inherently Dangerous Function)
The product calls a function that can never be guaranteed to work safely.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
748
(CERT C Secure Coding Standard (2008) Appendix - POSIX (POS)) >
272
(Least Privilege Violation)
The elevated privilege level required to perform operations such as chroot() should be dropped immediately after the operation is performed.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
748
(CERT C Secure Coding Standard (2008) Appendix - POSIX (POS)) >
273
(Improper Check for Dropped Privileges)
The product attempts to drop privileges but does not check or incorrectly checks to see if the drop succeeded.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
748
(CERT C Secure Coding Standard (2008) Appendix - POSIX (POS)) >
363
(Race Condition Enabling Link Following)
The product checks the status of a file or directory before accessing it, which produces a race condition in which the file can be replaced with a link before the access is performed, causing the product to access the wrong file.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
748
(CERT C Secure Coding Standard (2008) Appendix - POSIX (POS)) >
366
(Race Condition within a Thread)
If two threads of execution use a resource simultaneously, there exists the possibility that resources may be used while invalid, in turn making the state of execution undefined.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
748
(CERT C Secure Coding Standard (2008) Appendix - POSIX (POS)) >
562
(Return of Stack Variable Address)
A function returns the address of a stack variable, which will cause unintended program behavior, typically in the form of a crash.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
748
(CERT C Secure Coding Standard (2008) Appendix - POSIX (POS)) >
59
(Improper Link Resolution Before File Access ('Link Following'))
The product attempts to access a file based on the filename, but it does not properly prevent that filename from identifying a link or shortcut that resolves to an unintended resource.
insecure temporary file
Zip Slip
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
748
(CERT C Secure Coding Standard (2008) Appendix - POSIX (POS)) >
667
(Improper Locking)
The product does not properly acquire or release a lock on a resource, leading to unexpected resource state changes and behaviors.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
748
(CERT C Secure Coding Standard (2008) Appendix - POSIX (POS)) >
686
(Function Call With Incorrect Argument Type)
The product calls a function, procedure, or routine, but the caller specifies an argument that is the wrong data type, which may lead to resultant weaknesses.
![]() ![]()
734
(Weaknesses Addressed by the CERT C Secure Coding Standard (2008)) >
748
(CERT C Secure Coding Standard (2008) Appendix - POSIX (POS)) >
696
(Incorrect Behavior Order)
The product performs multiple related behaviors, but the behaviors are performed in the wrong order in ways which may produce resultant weaknesses.
Relationship
The relationships in this view were determined based on specific statements within the rules from the standard. Not all rules have direct relationships to individual weaknesses, although they likely have chaining relationships in specific circumstances.
More information is available — Please edit the custom filter or select a different filter. |
Use of the Common Weakness Enumeration (CWE™) and the associated references from this website are subject to the Terms of Use. CWE is sponsored by the U.S. Department of Homeland Security (DHS) Cybersecurity and Infrastructure Security Agency (CISA) and managed by the Homeland Security Systems Engineering and Development Institute (HSSEDI) which is operated by The MITRE Corporation (MITRE). Copyright © 2006–2025, The MITRE Corporation. CWE, CWSS, CWRAF, and the CWE logo are trademarks of The MITRE Corporation. |