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)
Category - a CWE entry that contains a set of other entries that share a common characteristic.
CERT C Secure Coding Standard (2008) Chapter 2 - Preprocessor (PRE)
- (735)
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).
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Incorrect Provision of Specified Functionality
- (684)
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.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
CERT C Secure Coding Standard (2008) Chapter 3 - Declarations and Initialization (DCL)
- (736)
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).
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Use of Hard-coded, Security-relevant Constants
- (547)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Function Call with Incorrectly Specified Arguments
- (628)
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.
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Function Call With Incorrect Argument Type
- (686)
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.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
CERT C Secure Coding Standard (2008) Chapter 4 - Expressions (EXP)
- (737)
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).
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Use of sizeof() on a Pointer Type
- (467)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Incorrect Pointer Scaling
- (468)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
NULL Pointer Dereference
- (476)
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
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Function Call with Incorrectly Specified Arguments
- (628)
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.
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Incorrect Type Conversion or Cast
- (704)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Operator Precedence Logic Error
- (783)
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.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
CERT C Secure Coding Standard (2008) Chapter 5 - Integers (INT)
- (738)
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).
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Improper Validation of Array Index
- (129)
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
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Integer Overflow or Wraparound
- (190)
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
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Integer Coercion Error
- (192)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Numeric Truncation Error
- (197)
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.
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Improper Input Validation
- (20)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Divide By Zero
- (369)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Return of Pointer Value Outside of Expected Range
- (466)
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.
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Assignment of a Fixed Address to a Pointer
- (587)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Unchecked Input for Loop Condition
- (606)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Use of Potentially Dangerous Function
- (676)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Incorrect Conversion between Numeric Types
- (681)
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.
Pillar - a weakness that is the most abstract type of weakness and represents a theme for all class/base/variant weaknesses related to it. A Pillar is different from a Category as a Pillar is still technically a type of weakness that describes a mistake, while a Category represents a common characteristic used to group related things.
Incorrect Calculation
- (682)
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.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
CERT C Secure Coding Standard (2008) Chapter 6 - Floating Point (FLP)
- (739)
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).
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Divide By Zero
- (369)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Incorrect Conversion between Numeric Types
- (681)
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.
Pillar - a weakness that is the most abstract type of weakness and represents a theme for all class/base/variant weaknesses related to it. A Pillar is different from a Category as a Pillar is still technically a type of weakness that describes a mistake, while a Category represents a common characteristic used to group related things.
Incorrect Calculation
- (682)
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.
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Function Call With Incorrect Argument Type
- (686)
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.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
CERT C Secure Coding Standard (2008) Chapter 7 - Arrays (ARR)
- (740)
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).
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Improper Restriction of Operations within the Bounds of a Memory Buffer
- (119)
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
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Improper Validation of Array Index
- (129)
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
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Use of sizeof() on a Pointer Type
- (467)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Use of Pointer Subtraction to Determine Size
- (469)
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.
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Improper Initialization
- (665)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Buffer Access with Incorrect Length Value
- (805)
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.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
CERT C Secure Coding Standard (2008) Chapter 8 - Characters and Strings (STR)
- (741)
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).
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Improper Restriction of Operations within the Bounds of a Memory Buffer
- (119)
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
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')
- (120)
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
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Incorrect Calculation of Multi-Byte String Length
- (135)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Improper Null Termination
- (170)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Off-by-one Error
- (193)
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
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Addition of Data Structure Sentinel
- (464)
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.
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Function Call With Incorrect Argument Type
- (686)
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.
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Incorrect Type Conversion or Cast
- (704)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')
- (78)
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
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Improper Neutralization of Argument Delimiters in a Command ('Argument Injection')
- (88)
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.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
CERT C Secure Coding Standard (2008) Chapter 9 - Memory Management (MEM)
- (742)
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).
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Improper Restriction of Operations within the Bounds of a Memory Buffer
- (119)
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
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Wrap-around Error
- (128)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Incorrect Calculation of Buffer Size
- (131)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Integer Overflow or Wraparound
- (190)
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
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Improper Input Validation
- (20)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Sensitive Information in Resource Not Removed Before Reuse
- (226)
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.
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Improper Clearing of Heap Memory Before Release ('Heap Inspection')
- (244)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Unchecked Return Value
- (252)
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.
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Double Free
- (415)
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
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Use After Free
- (416)
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
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
NULL Pointer Dereference
- (476)
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
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Exposure of Core Dump File to an Unauthorized Control Sphere
- (528)
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.
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Free of Memory not on the Heap
- (590)
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().
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Sensitive Data Storage in Improperly Locked Memory
- (591)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Function Call with Incorrectly Specified Arguments
- (628)
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.
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Improper Initialization
- (665)
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.
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Function Call With Incorrectly Specified Argument Value
- (687)
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.
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Improper Check for Unusual or Exceptional Conditions
- (754)
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.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)
- (743)
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).
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Improper Restriction of Operations within the Bounds of a Memory Buffer
- (119)
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
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Use of Externally-Controlled Format String
- (134)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
- (22)
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
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Improper Handling of Unexpected Data Type
- (241)
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).
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Incorrect Default Permissions
- (276)
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.
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Incorrect Execution-Assigned Permissions
- (279)
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.
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')
- (362)
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
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Time-of-check Time-of-use (TOCTOU) Race Condition
- (367)
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
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Path Traversal: '/absolute/pathname/here'
- (37)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Creation of Temporary File in Directory with Insecure Permissions
- (379)
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.
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Path Traversal: '\absolute\pathname\here'
- (38)
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.
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Path Traversal: 'C:dirname'
- (39)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Unchecked Error Condition
- (391)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Exposure of File Descriptor to Unintended Control Sphere ('File Descriptor Leak')
- (403)
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
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Improper Resource Shutdown or Release
- (404)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Improper Resolution of Path Equivalence
- (41)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Files or Directories Accessible to External Parties
- (552)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Improper Link Resolution Before File Access ('Link Following')
- (59)
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
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
UNIX Hard Link
- (62)
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.
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Windows Shortcut Following (.LNK)
- (64)
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
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Windows Hard Link
- (65)
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.
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Improper Handling of Windows Device Names
- (67)
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.
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Multiple Operations on Resource in Single-Operation Context
- (675)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Use of Potentially Dangerous Function
- (676)
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.
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Function Call With Incorrect Argument Type
- (686)
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.
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Incorrect Permission Assignment for Critical Resource
- (732)
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.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
CERT C Secure Coding Standard (2008) Chapter 11 - Environment (ENV)
- (744)
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).
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Improper Restriction of Operations within the Bounds of a Memory Buffer
- (119)
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
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Untrusted Search Path
- (426)
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
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Duplicate Key in Associative List (Alist)
- (462)
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.
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Incorrect Control Flow Scoping
- (705)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')
- (78)
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
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Improper Neutralization of Argument Delimiters in a Command ('Argument Injection')
- (88)
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.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
CERT C Secure Coding Standard (2008) Chapter 12 - Signals (SIG)
- (745)
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).
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Signal Handler Use of a Non-reentrant Function
- (479)
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.
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Improper Synchronization
- (662)
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.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
CERT C Secure Coding Standard (2008) Chapter 13 - Error Handling (ERR)
- (746)
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).
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Improper Input Validation
- (20)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Unchecked Error Condition
- (391)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Missing Standardized Error Handling Mechanism
- (544)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Use of Potentially Dangerous Function
- (676)
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.
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Incorrect Control Flow Scoping
- (705)
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.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
CERT C Secure Coding Standard (2008) Chapter 14 - Miscellaneous (MSC)
- (747)
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).
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Compiler Removal of Code to Clear Buffers
- (14)
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."
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Improper Handling of Unicode Encoding
- (176)
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.
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Improper Input Validation
- (20)
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.
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Use of Insufficiently Random Values
- (330)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Use of Incorrect Operator
- (480)
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.
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Comparing instead of Assigning
- (482)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Dead Code
- (561)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Assignment to Variable without Use
- (563)
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
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Expression is Always False
- (570)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Expression is Always True
- (571)
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.
Pillar - a weakness that is the most abstract type of weakness and represents a theme for all class/base/variant weaknesses related to it. A Pillar is different from a Category as a Pillar is still technically a type of weakness that describes a mistake, while a Category represents a common characteristic used to group related things.
Incorrect Comparison
- (697)
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.
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Incorrect Type Conversion or Cast
- (704)
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.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
CERT C Secure Coding Standard (2008) Appendix - POSIX (POS)
- (748)
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).
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Improper Null Termination
- (170)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Use of Inherently Dangerous Function
- (242)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Least Privilege Violation
- (272)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Improper Check for Dropped Privileges
- (273)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Race Condition Enabling Link Following
- (363)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Race Condition within a Thread
- (366)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Return of Stack Variable Address
- (562)
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.
Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource.
Improper Link Resolution Before File Access ('Link Following')
- (59)
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
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Improper Locking
- (667)
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.
Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource.
Function Call With Incorrect Argument Type
- (686)
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.
Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource.
Incorrect Behavior Order
- (696)
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–2024, The MITRE Corporation. CWE, CWSS, CWRAF, and the CWE logo are trademarks of The MITRE Corporation. |