CWE VIEW: Software Fault Pattern (SFP) Clusters
CWE identifiers in this view are associated with clusters of Software Fault Patterns (SFPs).
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:
888 - Software Fault Pattern (SFP) Clusters
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Primary Cluster: Risky Values
- (885)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values)
This category identifies Software Fault Patterns (SFPs) within the Risky Values cluster (SFP1).
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Glitch in Computation
- (998)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation)
This category identifies Software Fault Patterns (SFPs) within the Glitch in Computation cluster (SFP1).
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)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
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.
Integer Overflow or Wraparound
- (190)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
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
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 Underflow (Wrap or Wraparound)
- (191)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
191
(Integer Underflow (Wrap or Wraparound))
The product subtracts one value from another, such that the result is less than the minimum allowable integer value, which produces a value that is not equal to the correct result.
Integer 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.
Unexpected Sign Extension
- (194)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
194
(Unexpected Sign Extension)
The product performs an operation on a number that causes it to be sign extended when it is transformed into a larger data type. When the original number is negative, this can produce unexpected values that lead to 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.
Signed to Unsigned Conversion Error
- (195)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
195
(Signed to Unsigned Conversion Error)
The product uses a signed primitive and performs a cast to an unsigned primitive, which can produce an unexpected value if the value of the signed primitive can not be represented using an unsigned primitive.
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.
Unsigned to Signed Conversion Error
- (196)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
196
(Unsigned to Signed Conversion Error)
The product uses an unsigned primitive and performs a cast to a signed primitive, which can produce an unexpected value if the value of the unsigned primitive can not be represented using a signed primitive.
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)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
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.
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)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
369
(Divide By Zero)
The product divides a value by zero.
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.
Missing Initialization of a Variable
- (456)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
456
(Missing Initialization of a Variable)
The product does not initialize critical variables, which causes the execution environment to use unexpected values.
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 Uninitialized Variable
- (457)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
457
(Use of Uninitialized Variable)
The code uses a variable that has not been initialized, leading to unpredictable or unintended results.
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)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
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.
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)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
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.
Undefined Behavior for Input to API
- (475)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
475
(Undefined Behavior for Input to API)
The behavior of this function is undefined unless its control parameter is set to a specific 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.
Use of Incorrect Operator
- (480)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
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.
Assigning instead of Comparing
- (481)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
481
(Assigning instead of Comparing)
The code uses an operator for assignment when the intention was to perform a comparison.
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.
Comparison of Classes by Name
- (486)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
486
(Comparison of Classes by Name)
The product compares classes by name, which can cause it to use the wrong class when multiple classes can have the same name.
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)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
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.
Expression is Always False
- (570)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
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)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
571
(Expression is Always True)
The product contains an expression that will always evaluate to true.
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.
J2EE Bad Practices: Non-serializable Object Stored in Session
- (579)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
579
(J2EE Bad Practices: Non-serializable Object Stored in Session)
The product stores a non-serializable object as an HttpSession attribute, which can hurt reliability.
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)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
587
(Assignment of a Fixed Address to a Pointer)
The product sets a pointer to a specific address other than NULL or 0.
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.
J2EE Framework: Saving Unserializable Objects to Disk
- (594)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
594
(J2EE Framework: Saving Unserializable Objects to Disk)
When the J2EE container attempts to write unserializable objects to disk there is no guarantee that the process will complete successfully.
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 Wrong Operator in String Comparison
- (597)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
597
(Use of Wrong Operator in String Comparison)
The product uses the wrong operator when comparing a string, such as using "==" when the .equals() method should be used instead.
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)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
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.
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)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
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.
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 Order of Arguments
- (683)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
683
(Function Call With Incorrect Order of Arguments)
The product calls a function, procedure, or routine, but the caller specifies the arguments in an incorrect order, leading to 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 Number of Arguments
- (685)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
685
(Function Call With Incorrect Number of Arguments)
The product calls a function, procedure, or routine, but the caller specifies too many arguments, or too few arguments, which may lead to undefined 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)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
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.
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 Variable or Reference as Argument
- (688)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
688
(Function Call With Incorrect Variable or Reference as Argument)
The product calls a function, procedure, or routine, but the caller specifies the wrong variable or reference as one of the arguments, which may lead to undefined 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)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
704
(Incorrect Type Conversion or Cast)
The product does not correctly convert an object, resource, or structure from one type to a different type.
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 Short Circuit Evaluation
- (768)
888
(Software Fault Pattern (SFP) Clusters) >
885
(SFP Primary Cluster: Risky Values) >
998
(SFP Secondary Cluster: Glitch in Computation) >
768
(Incorrect Short Circuit Evaluation)
The product contains a conditional statement with multiple logical expressions in which one of the non-leading expressions may produce side effects. This may lead to an unexpected state in the program after the execution of the conditional, because short-circuiting logic may prevent the side effects from occurring.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Primary Cluster: Unused entities
- (886)
888
(Software Fault Pattern (SFP) Clusters) >
886
(SFP Primary Cluster: Unused entities)
This category identifies Software Fault Patterns (SFPs) within the Unused entities cluster (SFP2).
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)
888
(Software Fault Pattern (SFP) Clusters) >
886
(SFP Primary Cluster: Unused entities) >
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)
888
(Software Fault Pattern (SFP) Clusters) >
886
(SFP Primary Cluster: Unused entities) >
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)
888
(Software Fault Pattern (SFP) Clusters) >
886
(SFP Primary Cluster: Unused entities) >
563
(Assignment to Variable without Use)
The variable's value is assigned but never used, making it a dead store.
Unused Variable
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Primary Cluster: API
- (887)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API)
This category identifies Software Fault Patterns (SFPs) within the API cluster (SFP3).
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Use of an Improper API
- (1001)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API)
This category identifies Software Fault Patterns (SFPs) within the Use of an Improper API cluster (SFP3).
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.
Direct Use of Unsafe JNI
- (111)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
111
(Direct Use of Unsafe JNI)
When a Java application uses the Java Native Interface (JNI) to call code written in another programming language, it can expose the application to weaknesses in that code, even if those weaknesses cannot occur in Java.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
7PK - API Abuse
- (227)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
227
(7PK - API Abuse)
This category represents one of the phyla in the Seven Pernicious Kingdoms vulnerability classification. It includes weaknesses that involve the software using an API in a manner contrary to its intended use. According to the authors of the Seven Pernicious Kingdoms, "An API is a contract between a caller and a callee. The most common forms of API misuse occurs when the caller does not honor its end of this contract. For example, if a program does not call chdir() after calling chroot(), it violates the contract that specifies how to change the active root directory in a secure fashion. Another good example of library abuse is expecting the callee to return trustworthy DNS information to the caller. In this case, the caller misuses the callee API by making certain assumptions about its behavior (that the return value can be used for authentication purposes). One can also violate the caller-callee contract from the other side. For example, if a coder subclasses SecureRandom and returns a non-random value, the contract is violated."
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)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
242
(Use of Inherently Dangerous Function)
The product calls a function that can never be guaranteed to work 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.
J2EE Bad Practices: Direct Management of Connections
- (245)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
245
(J2EE Bad Practices: Direct Management of Connections)
The J2EE application directly manages connections, instead of using the container's connection management facilities.
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.
J2EE Bad Practices: Direct Use of Sockets
- (246)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
246
(J2EE Bad Practices: Direct Use of Sockets)
The J2EE application directly uses sockets instead of using framework method calls.
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.
J2EE Bad Practices: Use of System.exit()
- (382)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
382
(J2EE Bad Practices: Use of System.exit())
A J2EE application uses System.exit(), which also shuts down its container.
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.
J2EE Bad Practices: Direct Use of Threads
- (383)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
383
(J2EE Bad Practices: Direct Use of Threads)
Thread management in a Web application is forbidden in some circumstances and is always highly error prone.
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.
Dangerous Signal Handler not Disabled During Sensitive Operations
- (432)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
432
(Dangerous Signal Handler not Disabled During Sensitive Operations)
The product uses a signal handler that shares state with other signal handlers, but it does not properly mask or prevent those signal handlers from being invoked while the original signal handler is still running.
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.
Behavioral Change in New Version or Environment
- (439)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
439
(Behavioral Change in New Version or Environment)
A's behavior or functionality changes with a new version of A, or a new environment, which is not known (or manageable) by B.
Functional 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.
Expected Behavior Violation
- (440)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
440
(Expected Behavior Violation)
A feature, API, or function does not perform according to its specification.
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 Function with Inconsistent Implementations
- (474)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
474
(Use of Function with Inconsistent Implementations)
The code uses a function that has inconsistent implementations across operating systems and versions.
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 Obsolete Function
- (477)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
477
(Use of Obsolete Function)
The code uses deprecated or obsolete functions, which suggests that the code has not been actively reviewed or maintained.
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)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
479
(Signal Handler Use of a Non-reentrant Function)
The product defines a signal handler that calls a non-reentrant function.
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 getlogin() in Multithreaded Application
- (558)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
558
(Use of getlogin() in Multithreaded Application)
The product uses the getlogin() function in a multithreaded context, potentially causing it to return incorrect values.
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.
Call to Thread run() instead of start()
- (572)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
572
(Call to Thread run() instead of start())
The product calls a thread's run() method instead of calling start(), which causes the code to run in the thread of the caller instead of the callee.
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 Following of Specification by Caller
- (573)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
573
(Improper Following of Specification by Caller)
The product does not follow or incorrectly follows the specifications as required by the implementation language, environment, framework, protocol, or platform.
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.
EJB Bad Practices: Use of Synchronization Primitives
- (574)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
574
(EJB Bad Practices: Use of Synchronization Primitives)
The product violates the Enterprise JavaBeans (EJB) specification by using thread synchronization primitives.
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.
EJB Bad Practices: Use of AWT Swing
- (575)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
575
(EJB Bad Practices: Use of AWT Swing)
The product violates the Enterprise JavaBeans (EJB) specification by using AWT/Swing.
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.
EJB Bad Practices: Use of Java I/O
- (576)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
576
(EJB Bad Practices: Use of Java I/O)
The product violates the Enterprise JavaBeans (EJB) specification by using the java.io package.
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.
EJB Bad Practices: Use of Sockets
- (577)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
577
(EJB Bad Practices: Use of Sockets)
The product violates the Enterprise JavaBeans (EJB) specification by using sockets.
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.
EJB Bad Practices: Use of Class Loader
- (578)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
578
(EJB Bad Practices: Use of Class Loader)
The product violates the Enterprise JavaBeans (EJB) specification by using the class loader.
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.
Explicit Call to Finalize()
- (586)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
586
(Explicit Call to Finalize())
The product makes an explicit call to the finalize() method from outside the finalizer.
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.
Call to Non-ubiquitous API
- (589)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
589
(Call to Non-ubiquitous API)
The product uses an API function that does not exist on all versions of the target platform. This could cause portability problems or inconsistencies that allow denial of service or other consequences.
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.
Reachable Assertion
- (617)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
617
(Reachable Assertion)
The product contains an assert() or similar statement that can be triggered by an attacker, which leads to an application exit or other behavior that is more severe than necessary.
assertion failure
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)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
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 Provision of Specified Functionality
- (684)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
684
(Incorrect Provision of Specified Functionality)
The code does not function according to its published specifications, potentially leading to incorrect usage.
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 Low-Level Functionality
- (695)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
695
(Use of Low-Level Functionality)
The product uses low-level functionality that is explicitly prohibited by the framework or specification under which the product is supposed to operate.
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.
Reliance on Undefined, Unspecified, or Implementation-Defined Behavior
- (758)
888
(Software Fault Pattern (SFP) Clusters) >
887
(SFP Primary Cluster: API) >
1001
(SFP Secondary Cluster: Use of an Improper API) >
758
(Reliance on Undefined, Unspecified, or Implementation-Defined Behavior)
The product uses an API function, data structure, or other entity in a way that relies on properties that are not always guaranteed to hold for that entity.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Primary Cluster: Exception Management
- (889)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management)
This category identifies Software Fault Patterns (SFPs) within the Exception Management cluster (SFP4, SFP5, SFP6).
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Ambiguous Exception Type
- (960)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
960
(SFP Secondary Cluster: Ambiguous Exception Type)
This category identifies Software Fault Patterns (SFPs) within the Ambiguous Exception Type cluster (SFP5).
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.
Declaration of Catch for Generic Exception
- (396)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
960
(SFP Secondary Cluster: Ambiguous Exception Type) >
396
(Declaration of Catch for Generic Exception)
Catching overly broad exceptions promotes complex error handling code that is more likely to contain security vulnerabilities.
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.
Declaration of Throws for Generic Exception
- (397)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
960
(SFP Secondary Cluster: Ambiguous Exception Type) >
397
(Declaration of Throws for Generic Exception)
Throwing overly broad exceptions promotes complex error handling code that is more likely to contain security vulnerabilities.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Incorrect Exception Behavior
- (961)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
961
(SFP Secondary Cluster: Incorrect Exception Behavior)
This category identifies Software Fault Patterns (SFPs) within the Incorrect Exception Behavior cluster (SFP6).
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 Report of Error Condition
- (392)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
961
(SFP Secondary Cluster: Incorrect Exception Behavior) >
392
(Missing Report of Error Condition)
The product encounters an error but does not provide a status code or return value to indicate that an error has occurred.
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 Wrong Status Code
- (393)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
961
(SFP Secondary Cluster: Incorrect Exception Behavior) >
393
(Return of Wrong Status Code)
A function or operation returns an incorrect return value or status code that does not indicate an error, but causes the product to modify its behavior based on the incorrect result.
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.
Non-exit on Failed Initialization
- (455)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
961
(SFP Secondary Cluster: Incorrect Exception Behavior) >
455
(Non-exit on Failed Initialization)
The product does not exit or otherwise modify its operation when security-relevant errors occur during initialization, such as when a configuration file has a format error or a hardware security module (HSM) cannot be activated, which can cause the product to execute in a less secure fashion than intended by the administrator.
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 Cleanup on Thrown Exception
- (460)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
961
(SFP Secondary Cluster: Incorrect Exception Behavior) >
460
(Improper Cleanup on Thrown Exception)
The product does not clean up its state or incorrectly cleans up its state when an exception is thrown, leading to unexpected state or control flow.
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)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
961
(SFP Secondary Cluster: Incorrect Exception Behavior) >
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.
Return Inside Finally Block
- (584)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
961
(SFP Secondary Cluster: Incorrect Exception Behavior) >
584
(Return Inside Finally Block)
The code has a return statement inside a finally block, which will cause any thrown exception in the try block to be discarded.
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.
Not Failing Securely ('Failing Open')
- (636)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
961
(SFP Secondary Cluster: Incorrect Exception Behavior) >
636
(Not Failing Securely ('Failing Open'))
When the product encounters an error condition or failure, its design requires it to fall back to a state that is less secure than other options that are available, such as selecting the weakest encryption algorithm or using the most permissive access control restrictions.
Failing Open
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.
Improper Check or Handling of Exceptional Conditions
- (703)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
961
(SFP Secondary Cluster: Incorrect Exception Behavior) >
703
(Improper Check or Handling of Exceptional Conditions)
The product does not properly anticipate or handle exceptional conditions that rarely occur during normal operation of the product.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Unchecked Status Condition
- (962)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
962
(SFP Secondary Cluster: Unchecked Status Condition)
This category identifies Software Fault Patterns (SFPs) within the Unchecked Status Condition cluster (SFP4).
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.
Uncaught Exception
- (248)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
962
(SFP Secondary Cluster: Unchecked Status Condition) >
248
(Uncaught Exception)
An exception is thrown from a function, but it is not caught.
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)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
962
(SFP Secondary Cluster: Unchecked Status Condition) >
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.
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 Check of Function Return Value
- (253)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
962
(SFP Secondary Cluster: Unchecked Status Condition) >
253
(Incorrect Check of Function Return Value)
The product incorrectly checks a return value from a function, which prevents it from detecting errors or exceptional conditions.
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)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
962
(SFP Secondary Cluster: Unchecked Status Condition) >
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.
Improper Handling of Insufficient Permissions or Privileges
- (280)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
962
(SFP Secondary Cluster: Unchecked Status Condition) >
280
(Improper Handling of Insufficient Permissions or Privileges )
The product does not handle or incorrectly handles when it has insufficient privileges to access resources or functionality as specified by their permissions. This may cause it to follow unexpected code paths that may leave the product in an invalid state.
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.
Incomplete Internal State Distinction
- (372)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
962
(SFP Secondary Cluster: Unchecked Status Condition) >
372
(Incomplete Internal State Distinction)
The product does not properly determine which state it is in, causing it to assume it is in state X when in fact it is in state Y, causing it to perform incorrect operations in a security-relevant manner.
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.
Detection of Error Condition Without Action
- (390)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
962
(SFP Secondary Cluster: Unchecked Status Condition) >
390
(Detection of Error Condition Without Action)
The product detects a specific error, but takes no actions to handle the error.
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)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
962
(SFP Secondary Cluster: Unchecked Status Condition) >
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.
Unexpected Status Code or Return Value
- (394)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
962
(SFP Secondary Cluster: Unchecked Status Condition) >
394
(Unexpected Status Code or Return Value)
The product does not properly check when a function or operation returns a value that is legitimate for the function, but is not expected by the product.
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 NullPointerException Catch to Detect NULL Pointer Dereference
- (395)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
962
(SFP Secondary Cluster: Unchecked Status Condition) >
395
(Use of NullPointerException Catch to Detect NULL Pointer Dereference)
Catching NullPointerException should not be used as an alternative to programmatic checks to prevent dereferencing a null pointer.
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 Handler
- (431)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
962
(SFP Secondary Cluster: Unchecked Status Condition) >
431
(Missing Handler)
A handler is not available or implemented.
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 Default Case in Multiple Condition Expression
- (478)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
962
(SFP Secondary Cluster: Unchecked Status Condition) >
478
(Missing Default Case in Multiple Condition Expression)
The code does not have a default case in an expression with multiple conditions, such as a switch statement.
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.
Omitted Break Statement in Switch
- (484)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
962
(SFP Secondary Cluster: Unchecked Status Condition) >
484
(Omitted Break Statement in Switch)
The product omits a break statement within a switch or similar construct, causing code associated with multiple conditions to execute. This can cause problems when the programmer only intended to execute code associated with one condition.
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.
Uncaught Exception in Servlet
- (600)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
962
(SFP Secondary Cluster: Unchecked Status Condition) >
600
(Uncaught Exception in Servlet )
The Servlet does not catch all exceptions, which may reveal sensitive debugging information.
Missing Catch Block
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)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
962
(SFP Secondary Cluster: Unchecked Status Condition) >
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.
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)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
962
(SFP Secondary Cluster: Unchecked Status Condition) >
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.
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 Handling of Exceptional Conditions
- (755)
888
(Software Fault Pattern (SFP) Clusters) >
889
(SFP Primary Cluster: Exception Management) >
962
(SFP Secondary Cluster: Unchecked Status Condition) >
755
(Improper Handling of Exceptional Conditions)
The product does not handle or incorrectly handles an exceptional condition.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Primary Cluster: Memory Access
- (890)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access)
This category identifies Software Fault Patterns (SFPs) within the Memory Access cluster (SFP7, SFP8).
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Faulty Buffer Access
- (970)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
970
(SFP Secondary Cluster: Faulty Buffer Access)
This category identifies Software Fault Patterns (SFPs) within the Faulty Buffer Access cluster (SFP8).
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 Access of Indexable Resource ('Range Error')
- (118)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
970
(SFP Secondary Cluster: Faulty Buffer Access) >
118
(Incorrect Access of Indexable Resource ('Range Error'))
The product does not restrict or incorrectly restricts operations within the boundaries of a resource that is accessed using an index or pointer, such as memory or files.
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)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
970
(SFP Secondary Cluster: Faulty Buffer Access) >
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)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
970
(SFP Secondary Cluster: Faulty Buffer Access) >
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
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.
Stack-based Buffer Overflow
- (121)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
970
(SFP Secondary Cluster: Faulty Buffer Access) >
121
(Stack-based Buffer Overflow)
A stack-based buffer overflow condition is a condition where the buffer being overwritten is allocated on the stack (i.e., is a local variable or, rarely, a parameter to a function).
Stack Overflow
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.
Heap-based Buffer Overflow
- (122)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
970
(SFP Secondary Cluster: Faulty Buffer Access) >
122
(Heap-based Buffer Overflow)
A heap overflow condition is a buffer overflow, where the buffer that can be overwritten is allocated in the heap portion of memory, generally meaning that the buffer was allocated using a routine such as malloc().
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.
Write-what-where Condition
- (123)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
970
(SFP Secondary Cluster: Faulty Buffer Access) >
123
(Write-what-where Condition)
Any condition where the attacker has the ability to write an arbitrary value to an arbitrary location, often as the result of 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.
Buffer Underwrite ('Buffer Underflow')
- (124)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
970
(SFP Secondary Cluster: Faulty Buffer Access) >
124
(Buffer Underwrite ('Buffer Underflow'))
The product writes to a buffer using an index or pointer that references a memory location prior to the beginning of the buffer.
buffer underrun
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.
Out-of-bounds Read
- (125)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
970
(SFP Secondary Cluster: Faulty Buffer Access) >
125
(Out-of-bounds Read)
The product reads data past the end, or before the beginning, of the intended buffer.
OOB read
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.
Buffer Over-read
- (126)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
970
(SFP Secondary Cluster: Faulty Buffer Access) >
126
(Buffer Over-read)
The product reads from a buffer using buffer access mechanisms such as indexes or pointers that reference memory locations after the targeted buffer.
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.
Buffer Under-read
- (127)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
970
(SFP Secondary Cluster: Faulty Buffer Access) >
127
(Buffer Under-read)
The product reads from a buffer using buffer access mechanisms such as indexes or pointers that reference memory locations prior to the targeted buffer.
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)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
970
(SFP Secondary Cluster: Faulty Buffer Access) >
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
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Faulty Pointer Use
- (971)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
971
(SFP Secondary Cluster: Faulty Pointer Use)
This category identifies Software Fault Patterns (SFPs) within the Faulty Pointer Use cluster (SFP7).
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)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
971
(SFP Secondary Cluster: Faulty Pointer Use) >
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.
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)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
971
(SFP Secondary Cluster: Faulty Pointer Use) >
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.
Attempt to Access Child of a Non-structure Pointer
- (588)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
971
(SFP Secondary Cluster: Faulty Pointer Use) >
588
(Attempt to Access Child of a Non-structure Pointer)
Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Faulty String Expansion
- (972)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
972
(SFP Secondary Cluster: Faulty String Expansion)
This category identifies Software Fault Patterns (SFPs) within the Faulty String Expansion cluster (SFP9).
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 Path Manipulation Function without Maximum-sized Buffer
- (785)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
972
(SFP Secondary Cluster: Faulty String Expansion) >
785
(Use of Path Manipulation Function without Maximum-sized Buffer)
The product invokes a function for normalizing paths or file names, but it provides an output buffer that is smaller than the maximum possible size, such as PATH_MAX.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Improper NULL Termination
- (973)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
973
(SFP Secondary Cluster: Improper NULL Termination)
This category identifies Software Fault Patterns (SFPs) within the Improper NULL Termination cluster (SFP11).
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)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
973
(SFP Secondary Cluster: Improper NULL Termination) >
170
(Improper Null Termination)
The product does not terminate or incorrectly terminates a string or array with a null character or equivalent terminator.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Incorrect Buffer Length Computation
- (974)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
974
(SFP Secondary Cluster: Incorrect Buffer Length Computation)
This category identifies Software Fault Patterns (SFPs) within the Incorrect Buffer Length Computation cluster (SFP10).
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)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
974
(SFP Secondary Cluster: Incorrect Buffer Length Computation) >
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.
Incorrect Calculation of Multi-Byte String Length
- (135)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
974
(SFP Secondary Cluster: Incorrect Buffer Length Computation) >
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.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
Often Misused: String Management
- (251)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
974
(SFP Secondary Cluster: Incorrect Buffer Length Computation) >
251
(Often Misused: String Management)
Functions that manipulate strings encourage buffer overflows.
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)
888
(Software Fault Pattern (SFP) Clusters) >
890
(SFP Primary Cluster: Memory Access) >
974
(SFP Secondary Cluster: Incorrect Buffer Length Computation) >
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.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Primary Cluster: Memory Management
- (891)
888
(Software Fault Pattern (SFP) Clusters) >
891
(SFP Primary Cluster: Memory Management)
This category identifies Software Fault Patterns (SFPs) within the Memory Management cluster (SFP38).
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Faulty Memory Release
- (969)
888
(Software Fault Pattern (SFP) Clusters) >
891
(SFP Primary Cluster: Memory Management) >
969
(SFP Secondary Cluster: Faulty Memory Release)
This category identifies Software Fault Patterns (SFPs) within the Faulty Memory Release cluster (SFP12).
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)
888
(Software Fault Pattern (SFP) Clusters) >
891
(SFP Primary Cluster: Memory Management) >
969
(SFP Secondary Cluster: Faulty Memory Release) >
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.
Free of Memory not on the Heap
- (590)
888
(Software Fault Pattern (SFP) Clusters) >
891
(SFP Primary Cluster: Memory Management) >
969
(SFP Secondary Cluster: Faulty Memory Release) >
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.
Free of Pointer not at Start of Buffer
- (761)
888
(Software Fault Pattern (SFP) Clusters) >
891
(SFP Primary Cluster: Memory Management) >
969
(SFP Secondary Cluster: Faulty Memory Release) >
761
(Free of Pointer not at Start of Buffer)
The product calls free() on a pointer to a memory resource that was allocated on the heap, but the pointer is not at the start of the buffer.
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.
Release of Invalid Pointer or Reference
- (763)
888
(Software Fault Pattern (SFP) Clusters) >
891
(SFP Primary Cluster: Memory Management) >
969
(SFP Secondary Cluster: Faulty Memory Release) >
763
(Release of Invalid Pointer or Reference)
The product attempts to return a memory resource to the system, but it calls the wrong release function or calls the appropriate release function incorrectly.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Primary Cluster: Resource Management
- (892)
888
(Software Fault Pattern (SFP) Clusters) >
892
(SFP Primary Cluster: Resource Management)
This category identifies Software Fault Patterns (SFPs) within the Resource Management cluster (SFP37).
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Failure to Release Resource
- (982)
888
(Software Fault Pattern (SFP) Clusters) >
892
(SFP Primary Cluster: Resource Management) >
982
(SFP Secondary Cluster: Failure to Release Resource)
This category identifies Software Fault Patterns (SFPs) within the Failure to Release Resource cluster (SFP14).
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)
888
(Software Fault Pattern (SFP) Clusters) >
892
(SFP Primary Cluster: Resource Management) >
982
(SFP Secondary Cluster: Failure to Release Resource) >
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.
Incomplete Cleanup
- (459)
888
(Software Fault Pattern (SFP) Clusters) >
892
(SFP Primary Cluster: Resource Management) >
982
(SFP Secondary Cluster: Failure to Release Resource) >
459
(Incomplete Cleanup)
The product does not properly "clean up" and remove temporary or supporting resources after they have been used.
Insufficient Cleanup
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 Reference to Active Allocated Resource
- (771)
888
(Software Fault Pattern (SFP) Clusters) >
892
(SFP Primary Cluster: Resource Management) >
982
(SFP Secondary Cluster: Failure to Release Resource) >
771
(Missing Reference to Active Allocated Resource)
The product does not properly maintain a reference to a resource that has been allocated, which prevents the resource from being reclaimed.
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 Release of Resource after Effective Lifetime
- (772)
888
(Software Fault Pattern (SFP) Clusters) >
892
(SFP Primary Cluster: Resource Management) >
982
(SFP Secondary Cluster: Failure to Release Resource) >
772
(Missing Release of Resource after Effective Lifetime)
The product does not release a resource after its effective lifetime has ended, i.e., after the resource is no longer needed.
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.
Missing Reference to Active File Descriptor or Handle
- (773)
888
(Software Fault Pattern (SFP) Clusters) >
892
(SFP Primary Cluster: Resource Management) >
982
(SFP Secondary Cluster: Failure to Release Resource) >
773
(Missing Reference to Active File Descriptor or Handle)
The product does not properly maintain references to a file descriptor or handle, which prevents that file descriptor/handle from being reclaimed.
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.
Missing Release of File Descriptor or Handle after Effective Lifetime
- (775)
888
(Software Fault Pattern (SFP) Clusters) >
892
(SFP Primary Cluster: Resource Management) >
982
(SFP Secondary Cluster: Failure to Release Resource) >
775
(Missing Release of File Descriptor or Handle after Effective Lifetime)
The product does not release a file descriptor or handle after its effective lifetime has ended, i.e., after the file descriptor/handle is no longer needed.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Faulty Resource Use
- (983)
888
(Software Fault Pattern (SFP) Clusters) >
892
(SFP Primary Cluster: Resource Management) >
983
(SFP Secondary Cluster: Faulty Resource Use)
This category identifies Software Fault Patterns (SFPs) within the Faulty Resource Use cluster (SFP15).
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)
888
(Software Fault Pattern (SFP) Clusters) >
892
(SFP Primary Cluster: Resource Management) >
983
(SFP Secondary Cluster: Faulty Resource Use) >
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
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.
Operation on a Resource after Expiration or Release
- (672)
888
(Software Fault Pattern (SFP) Clusters) >
892
(SFP Primary Cluster: Resource Management) >
983
(SFP Secondary Cluster: Faulty Resource Use) >
672
(Operation on a Resource after Expiration or Release)
The product uses, accesses, or otherwise operates on a resource after that resource has been expired, released, or revoked.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Life Cycle
- (984)
888
(Software Fault Pattern (SFP) Clusters) >
892
(SFP Primary Cluster: Resource Management) >
984
(SFP Secondary Cluster: Life Cycle)
This category identifies Software Fault Patterns (SFPs) within the Life Cycle cluster.
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.
Improper Control of a Resource Through its Lifetime
- (664)
888
(Software Fault Pattern (SFP) Clusters) >
892
(SFP Primary Cluster: Resource Management) >
984
(SFP Secondary Cluster: Life Cycle) >
664
(Improper Control of a Resource Through its Lifetime)
The product does not maintain or incorrectly maintains control over a resource throughout its lifetime of creation, use, and release.
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.
Operation on Resource in Wrong Phase of Lifetime
- (666)
888
(Software Fault Pattern (SFP) Clusters) >
892
(SFP Primary Cluster: Resource Management) >
984
(SFP Secondary Cluster: Life Cycle) >
666
(Operation on Resource in Wrong Phase of Lifetime)
The product performs an operation on a resource at the wrong phase of the resource's lifecycle, which can lead to unexpected behaviors.
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)
888
(Software Fault Pattern (SFP) Clusters) >
892
(SFP Primary Cluster: Resource Management) >
984
(SFP Secondary Cluster: Life Cycle) >
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 Multiple Resources with Duplicate Identifier
- (694)
888
(Software Fault Pattern (SFP) Clusters) >
892
(SFP Primary Cluster: Resource Management) >
984
(SFP Secondary Cluster: Life Cycle) >
694
(Use of Multiple Resources with Duplicate Identifier)
The product uses multiple resources that can have the same identifier, in a context in which unique identifiers are required.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Unrestricted Consumption
- (985)
888
(Software Fault Pattern (SFP) Clusters) >
892
(SFP Primary Cluster: Resource Management) >
985
(SFP Secondary Cluster: Unrestricted Consumption)
This category identifies Software Fault Patterns (SFPs) within the Unrestricted Consumption cluster (SFP13).
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.
Uncontrolled Resource Consumption
- (400)
888
(Software Fault Pattern (SFP) Clusters) >
892
(SFP Primary Cluster: Resource Management) >
985
(SFP Secondary Cluster: Unrestricted Consumption) >
400
(Uncontrolled Resource Consumption)
The product does not properly control the allocation and maintenance of a limited resource, thereby enabling an actor to influence the amount of resources consumed, eventually leading to the exhaustion of available resources.
Resource Exhaustion
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.
Uncontrolled Recursion
- (674)
888
(Software Fault Pattern (SFP) Clusters) >
892
(SFP Primary Cluster: Resource Management) >
985
(SFP Secondary Cluster: Unrestricted Consumption) >
674
(Uncontrolled Recursion)
The product does not properly control the amount of recursion that takes place, consuming excessive resources, such as allocated memory or the program stack.
Stack Exhaustion
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.
Allocation of Resources Without Limits or Throttling
- (770)
888
(Software Fault Pattern (SFP) Clusters) >
892
(SFP Primary Cluster: Resource Management) >
985
(SFP Secondary Cluster: Unrestricted Consumption) >
770
(Allocation of Resources Without Limits or Throttling)
The product allocates a reusable resource or group of resources on behalf of an actor without imposing any restrictions on the size or number of resources that can be allocated, in violation of the intended security policy for that actor.
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.
Allocation of File Descriptors or Handles Without Limits or Throttling
- (774)
888
(Software Fault Pattern (SFP) Clusters) >
892
(SFP Primary Cluster: Resource Management) >
985
(SFP Secondary Cluster: Unrestricted Consumption) >
774
(Allocation of File Descriptors or Handles Without Limits or Throttling)
The product allocates file descriptors or handles on behalf of an actor without imposing any restrictions on how many descriptors can be allocated, in violation of the intended security policy for that actor.
File Descriptor Exhaustion
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Primary Cluster: Path Resolution
- (893)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution)
This category identifies Software Fault Patterns (SFPs) within the Path Resolution cluster (SFP16, SFP17, SFP18).
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Failed Chroot Jail
- (979)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
979
(SFP Secondary Cluster: Failed Chroot Jail)
This category identifies Software Fault Patterns (SFPs) within the Failed Chroot Jail cluster (SFP17).
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.
Creation of chroot Jail Without Changing Working Directory
- (243)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
979
(SFP Secondary Cluster: Failed Chroot Jail) >
243
(Creation of chroot Jail Without Changing Working Directory)
The product uses the chroot() system call to create a jail, but does not change the working directory afterward. This does not prevent access to files outside of the jail.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Link in Resource Name Resolution
- (980)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
980
(SFP Secondary Cluster: Link in Resource Name Resolution)
This category identifies Software Fault Patterns (SFPs) within the Link in Resource Name Resolution cluster (SFP18).
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.
Symbolic Name not Mapping to Correct Object
- (386)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
980
(SFP Secondary Cluster: Link in Resource Name Resolution) >
386
(Symbolic Name not Mapping to Correct Object)
A constant symbolic reference to an object is used, even though the reference can resolve to a different object over time.
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)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
980
(SFP Secondary Cluster: Link in Resource Name Resolution) >
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.
Externally Controlled Reference to a Resource in Another Sphere
- (610)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
980
(SFP Secondary Cluster: Link in Resource Name Resolution) >
610
(Externally Controlled Reference to a Resource in Another Sphere)
The product uses an externally controlled name or reference that resolves to a resource that is outside of the intended control sphere.
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)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
980
(SFP Secondary Cluster: Link in Resource Name Resolution) >
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)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
980
(SFP Secondary Cluster: Link in Resource Name Resolution) >
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)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
980
(SFP Secondary Cluster: Link in Resource Name Resolution) >
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.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Path Traversal
- (981)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal)
This category identifies Software Fault Patterns (SFPs) within the Path Traversal cluster (SFP16).
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)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
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.
Relative Path Traversal
- (23)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
23
(Relative Path Traversal)
The product uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize sequences such as ".." that can resolve to a location that is outside of that directory.
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.
Path Traversal: '../filedir'
- (24)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
24
(Path Traversal: '../filedir')
The product uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize "../" sequences that can resolve to a location that is outside of that directory.
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: '/../filedir'
- (25)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
25
(Path Traversal: '/../filedir')
The product uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize "/../" sequences that can resolve to a location that is outside of that directory.
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: '/dir/../filename'
- (26)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
26
(Path Traversal: '/dir/../filename')
The product uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize "/dir/../filename" sequences that can resolve to a location that is outside of that directory.
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: 'dir/../../filename'
- (27)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
27
(Path Traversal: 'dir/../../filename')
The product uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize multiple internal "../" sequences that can resolve to a location that is outside of that directory.
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: '..\filedir'
- (28)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
28
(Path Traversal: '..\filedir')
The product uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize "..\" sequences that can resolve to a location that is outside of that directory.
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: '\..\filename'
- (29)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
29
(Path Traversal: '\..\filename')
The product uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize '\..\filename' (leading backslash dot dot) sequences that can resolve to a location that is outside of that directory.
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: '\dir\..\filename'
- (30)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
30
(Path Traversal: '\dir\..\filename')
The product uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize '\dir\..\filename' (leading backslash dot dot) sequences that can resolve to a location that is outside of that directory.
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: 'dir\..\..\filename'
- (31)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
31
(Path Traversal: 'dir\..\..\filename')
The product uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize 'dir\..\..\filename' (multiple internal backslash dot dot) sequences that can resolve to a location that is outside of that directory.
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: '...' (Triple Dot)
- (32)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
32
(Path Traversal: '...' (Triple Dot))
The product uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize '...' (triple dot) sequences that can resolve to a location that is outside of that directory.
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: '....' (Multiple Dot)
- (33)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
33
(Path Traversal: '....' (Multiple Dot))
The product uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize '....' (multiple dot) sequences that can resolve to a location that is outside of that directory.
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: '....//'
- (34)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
34
(Path Traversal: '....//')
The product uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize '....//' (doubled dot dot slash) sequences that can resolve to a location that is outside of that directory.
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: '.../...//'
- (35)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
35
(Path Traversal: '.../...//')
The product uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize '.../...//' (doubled triple dot slash) sequences that can resolve to a location that is outside of that directory.
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.
Absolute Path Traversal
- (36)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
36
(Absolute Path Traversal)
The product uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize absolute path sequences such as "/abs/path" that can resolve to a location that is outside of that directory.
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)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
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.
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)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
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)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
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.
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: '\\UNC\share\name\' (Windows UNC Share)
- (40)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
40
(Path Traversal: '\\UNC\share\name\' (Windows UNC Share))
The product accepts input that identifies a Windows UNC share ('\\UNC\share\name') 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.
Improper Resolution of Path Equivalence
- (41)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
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.
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 Equivalence: 'filename.' (Trailing Dot)
- (42)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
42
(Path Equivalence: 'filename.' (Trailing Dot))
The product accepts path input in the form of trailing dot ('filedir.') without appropriate validation, which can lead to ambiguous path resolution and 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.
Unquoted Search Path or Element
- (428)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
428
(Unquoted Search Path or Element)
The product uses a search path that contains an unquoted element, in which the element contains whitespace or other separators. This can cause the product to access resources in a parent 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.
Path Equivalence: 'filename....' (Multiple Trailing Dot)
- (43)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
43
(Path Equivalence: 'filename....' (Multiple Trailing Dot))
The product accepts path input in the form of multiple trailing dot ('filedir....') without appropriate validation, which can lead to ambiguous path resolution and 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 Equivalence: 'file.name' (Internal Dot)
- (44)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
44
(Path Equivalence: 'file.name' (Internal Dot))
The product accepts path input in the form of internal dot ('file.ordir') without appropriate validation, which can lead to ambiguous path resolution and 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 Equivalence: 'file...name' (Multiple Internal Dot)
- (45)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
45
(Path Equivalence: 'file...name' (Multiple Internal Dot))
The product accepts path input in the form of multiple internal dot ('file...dir') without appropriate validation, which can lead to ambiguous path resolution and 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 Equivalence: 'filename ' (Trailing Space)
- (46)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
46
(Path Equivalence: 'filename ' (Trailing Space))
The product accepts path input in the form of trailing space ('filedir ') without appropriate validation, which can lead to ambiguous path resolution and 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 Equivalence: ' filename' (Leading Space)
- (47)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
47
(Path Equivalence: ' filename' (Leading Space))
The product accepts path input in the form of leading space (' filedir') without appropriate validation, which can lead to ambiguous path resolution and 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 Equivalence: 'file name' (Internal Whitespace)
- (48)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
48
(Path Equivalence: 'file name' (Internal Whitespace))
The product accepts path input in the form of internal space ('file(SPACE)name') without appropriate validation, which can lead to ambiguous path resolution and 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 Equivalence: 'filename/' (Trailing Slash)
- (49)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
49
(Path Equivalence: 'filename/' (Trailing Slash))
The product accepts path input in the form of trailing slash ('filedir/') without appropriate validation, which can lead to ambiguous path resolution and 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 Equivalence: '//multiple/leading/slash'
- (50)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
50
(Path Equivalence: '//multiple/leading/slash')
The product accepts path input in the form of multiple leading slash ('//multiple/leading/slash') without appropriate validation, which can lead to ambiguous path resolution and 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 Equivalence: '/multiple//internal/slash'
- (51)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
51
(Path Equivalence: '/multiple//internal/slash')
The product accepts path input in the form of multiple internal slash ('/multiple//internal/slash/') without appropriate validation, which can lead to ambiguous path resolution and 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 Equivalence: '/multiple/trailing/slash//'
- (52)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
52
(Path Equivalence: '/multiple/trailing/slash//')
The product accepts path input in the form of multiple trailing slash ('/multiple/trailing/slash//') without appropriate validation, which can lead to ambiguous path resolution and 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 Equivalence: '\multiple\\internal\backslash'
- (53)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
53
(Path Equivalence: '\multiple\\internal\backslash')
The product accepts path input in the form of multiple internal backslash ('\multiple\trailing\\slash') without appropriate validation, which can lead to ambiguous path resolution and 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 Equivalence: 'filedir\' (Trailing Backslash)
- (54)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
54
(Path Equivalence: 'filedir\' (Trailing Backslash))
The product accepts path input in the form of trailing backslash ('filedir\') without appropriate validation, which can lead to ambiguous path resolution and 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 Equivalence: '/./' (Single Dot Directory)
- (55)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
55
(Path Equivalence: '/./' (Single Dot Directory))
The product accepts path input in the form of single dot directory exploit ('/./') without appropriate validation, which can lead to ambiguous path resolution and 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 Equivalence: 'filedir*' (Wildcard)
- (56)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
56
(Path Equivalence: 'filedir*' (Wildcard))
The product accepts path input in the form of asterisk wildcard ('filedir*') without appropriate validation, which can lead to ambiguous path resolution and 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 Equivalence: 'fakedir/../realdir/filename'
- (57)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
57
(Path Equivalence: 'fakedir/../realdir/filename')
The product contains protection mechanisms to restrict access to 'realdir/filename', but it constructs pathnames using external input in the form of 'fakedir/../realdir/filename' that are not handled by those mechanisms. This allows attackers to perform unauthorized actions against the targeted 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 Equivalence: Windows 8.3 Filename
- (58)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
58
(Path Equivalence: Windows 8.3 Filename)
The product contains a protection mechanism that restricts access to a long filename on a Windows operating system, but it does not properly restrict access to the equivalent short "8.3" filename.
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 File Names that Identify Virtual Resources
- (66)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
66
(Improper Handling of File Names that Identify Virtual Resources)
The product does not handle or incorrectly handles a file name that identifies a "virtual" resource that is not directly specified within the directory that is associated with the file name, causing the product to perform file-based operations on a resource that is not a 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.
Improper Handling of Windows Device Names
- (67)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
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.
Use of Incorrectly-Resolved Name or Reference
- (706)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
706
(Use of Incorrectly-Resolved Name or Reference)
The product uses a name or reference to access a resource, but the name/reference resolves to a resource that is outside of the intended control sphere.
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 Apple HFS+ Alternate Data Stream Path
- (72)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
72
(Improper Handling of Apple HFS+ Alternate Data Stream Path)
The product does not properly handle special paths that may identify the data or resource fork of a file on the HFS+ file system.
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.
External Control of File Name or Path
- (73)
888
(Software Fault Pattern (SFP) Clusters) >
893
(SFP Primary Cluster: Path Resolution) >
981
(SFP Secondary Cluster: Path Traversal) >
73
(External Control of File Name or Path)
The product allows user input to control or influence paths or file names that are used in filesystem operations.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Primary Cluster: Synchronization
- (894)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization)
This category identifies Software Fault Patterns (SFPs) within the Synchronization cluster (SFP19, SFP20, SFP21, SFP22).
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Missing Lock
- (986)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization) >
986
(SFP Secondary Cluster: Missing Lock)
This category identifies Software Fault Patterns (SFPs) within the Missing Lock cluster (SFP19).
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.
Signal Handler Race Condition
- (364)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization) >
986
(SFP Secondary Cluster: Missing Lock) >
364
(Signal Handler Race Condition)
The product uses a signal handler that introduces a 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.
Race Condition within a Thread
- (366)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization) >
986
(SFP Secondary Cluster: Missing Lock) >
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.
Context Switching Race Condition
- (368)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization) >
986
(SFP Secondary Cluster: Missing Lock) >
368
(Context Switching Race Condition)
A product performs a series of non-atomic actions to switch between contexts that cross privilege or other security boundaries, but a race condition allows an attacker to modify or misrepresent the product's behavior during the switch.
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 Resource Locking
- (413)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization) >
986
(SFP Secondary Cluster: Missing Lock) >
413
(Improper Resource Locking)
The product does not lock or does not correctly lock a resource when the product must have exclusive access to the resource.
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 Lock Check
- (414)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization) >
986
(SFP Secondary Cluster: Missing Lock) >
414
(Missing Lock Check)
A product does not check to see if a lock is present before performing sensitive operations on a resource.
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 Singleton Pattern Without Synchronization in a Multithreaded Context
- (543)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization) >
986
(SFP Secondary Cluster: Missing Lock) >
543
(Use of Singleton Pattern Without Synchronization in a Multithreaded Context)
The product uses the singleton pattern when creating a resource within a multithreaded environment.
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.
Unsynchronized Access to Shared Data in a Multithreaded Context
- (567)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization) >
986
(SFP Secondary Cluster: Missing Lock) >
567
(Unsynchronized Access to Shared Data in a Multithreaded Context)
The product does not properly synchronize shared data, such as static variables across threads, which can lead to undefined behavior and unpredictable data changes.
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.
Double-Checked Locking
- (609)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization) >
986
(SFP Secondary Cluster: Missing Lock) >
609
(Double-Checked Locking)
The product uses double-checked locking to access a resource without the overhead of explicit synchronization, but the locking is insufficient.
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)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization) >
986
(SFP Secondary Cluster: Missing Lock) >
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.
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 a Non-reentrant Function in a Concurrent Context
- (663)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization) >
986
(SFP Secondary Cluster: Missing Lock) >
663
(Use of a Non-reentrant Function in a Concurrent Context)
The product calls a non-reentrant function in a concurrent context in which a competing code sequence (e.g. thread or signal handler) may have an opportunity to call the same function or otherwise influence its state.
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)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization) >
986
(SFP Secondary Cluster: Missing Lock) >
667
(Improper Locking)
The product does not properly acquire or release a lock on a resource, leading to unexpected resource state changes and behaviors.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Multiple Locks/Unlocks
- (987)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization) >
987
(SFP Secondary Cluster: Multiple Locks/Unlocks)
This category identifies Software Fault Patterns (SFPs) within the Multiple Locks/Unlocks cluster (SFP21).
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.
Empty Synchronized Block
- (585)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization) >
987
(SFP Secondary Cluster: Multiple Locks/Unlocks) >
585
(Empty Synchronized Block)
The product contains an empty synchronized block.
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.
Multiple Locks of a Critical Resource
- (764)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization) >
987
(SFP Secondary Cluster: Multiple Locks/Unlocks) >
764
(Multiple Locks of a Critical Resource)
The product locks a critical resource more times than intended, leading to an unexpected state in the system.
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.
Multiple Unlocks of a Critical Resource
- (765)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization) >
987
(SFP Secondary Cluster: Multiple Locks/Unlocks) >
765
(Multiple Unlocks of a Critical Resource)
The product unlocks a critical resource more times than intended, leading to an unexpected state in the system.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Race Condition Window
- (988)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization) >
988
(SFP Secondary Cluster: Race Condition Window)
This category identifies Software Fault Patterns (SFPs) within the Race Condition Window cluster (SFP20).
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)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization) >
988
(SFP Secondary Cluster: Race Condition Window) >
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.
Race Condition Enabling Link Following
- (363)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization) >
988
(SFP Secondary Cluster: Race Condition Window) >
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.
Time-of-check Time-of-use (TOCTOU) Race Condition
- (367)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization) >
988
(SFP Secondary Cluster: Race Condition Window) >
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.
Missing Check for Certificate Revocation after Initial Check
- (370)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization) >
988
(SFP Secondary Cluster: Race Condition Window) >
370
(Missing Check for Certificate Revocation after Initial Check)
The product does not check the revocation status of a certificate after its initial revocation check, which can cause the product to perform privileged actions even after the certificate is revoked at a later time.
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.
Not Using Complete Mediation
- (638)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization) >
988
(SFP Secondary Cluster: Race Condition Window) >
638
(Not Using Complete Mediation)
The product does not perform access checks on a resource every time the resource is accessed by an entity, which can create resultant weaknesses if that entity's rights or privileges change over time.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Unrestricted Lock
- (989)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization) >
989
(SFP Secondary Cluster: Unrestricted Lock)
This category identifies Software Fault Patterns (SFPs) within the Unrestricted Lock cluster (SFP22).
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.
Unrestricted Externally Accessible Lock
- (412)
888
(Software Fault Pattern (SFP) Clusters) >
894
(SFP Primary Cluster: Synchronization) >
989
(SFP Secondary Cluster: Unrestricted Lock) >
412
(Unrestricted Externally Accessible Lock)
The product properly checks for the existence of a lock, but the lock can be externally controlled or influenced by an actor that is outside of the intended sphere of control.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Primary Cluster: Information Leak
- (895)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak)
This category identifies Software Fault Patterns (SFPs) within the Information Leak cluster (SFP23).
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Exposed Data
- (963)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data)
This category identifies Software Fault Patterns (SFPs) within the Exposed Data cluster (SFP23).
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.
ASP.NET Misconfiguration: Creating Debug Binary
- (11)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
11
(ASP.NET Misconfiguration: Creating Debug Binary)
Debugging messages help attackers learn about the system and plan a form of attack.
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 Output Neutralization for Logs
- (117)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
117
(Improper Output Neutralization for Logs)
The product does not neutralize or incorrectly neutralizes output that is written to logs.
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.
ASP.NET Misconfiguration: Missing Custom Error Page
- (12)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
12
(ASP.NET Misconfiguration: Missing Custom Error Page)
An ASP .NET application must enable custom error pages in order to prevent attackers from mining information from the framework's built-in responses.
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.
ASP.NET Misconfiguration: Password in Configuration File
- (13)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
13
(ASP.NET Misconfiguration: Password in Configuration File)
Storing a plaintext password in a configuration file allows anyone who can read the file access to the password-protected resource making them an easy target for attackers.
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)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
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."
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.
Exposure of Sensitive Information to an Unauthorized Actor
- (200)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
200
(Exposure of Sensitive Information to an Unauthorized Actor)
The product exposes sensitive information to an actor that is not explicitly authorized to have access to that information.
Information Disclosure
Information Leak
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.
Insertion of Sensitive Information Into Sent Data
- (201)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
201
(Insertion of Sensitive Information Into Sent Data)
The code transmits data to another actor, but a portion of the data includes sensitive information that should not be accessible to that actor.
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.
Generation of Error Message Containing Sensitive Information
- (209)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
209
(Generation of Error Message Containing Sensitive Information)
The product generates an error message that includes sensitive information about its environment, users, or associated data.
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.
Self-generated Error Message Containing Sensitive Information
- (210)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
210
(Self-generated Error Message Containing Sensitive Information)
The product identifies an error condition and creates its own diagnostic or error messages that contain sensitive information.
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.
Externally-Generated Error Message Containing Sensitive Information
- (211)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
211
(Externally-Generated Error Message Containing Sensitive Information)
The product performs an operation that triggers an external diagnostic or error message that is not directly generated or controlled by the product, such as an error generated by the programming language interpreter that a software application uses. The error can contain sensitive system information.
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 Removal of Sensitive Information Before Storage or Transfer
- (212)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
212
(Improper Removal of Sensitive Information Before Storage or Transfer)
The product stores, transfers, or shares a resource that contains sensitive information, but it does not properly remove that information before the product makes the resource available to unauthorized 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.
Exposure of Sensitive Information Due to Incompatible Policies
- (213)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
213
(Exposure of Sensitive Information Due to Incompatible Policies)
The product's intended functionality exposes information to certain actors in accordance with the developer's security policy, but this information is regarded as sensitive according to the intended security policies of other stakeholders such as the product's administrator, users, or others whose information is being processed.
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.
Invocation of Process Using Visible Sensitive Information
- (214)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
214
(Invocation of Process Using Visible Sensitive Information)
A process is invoked with sensitive command-line arguments, environment variables, or other elements that can be seen by other processes on the operating system.
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.
Insertion of Sensitive Information Into Debugging Code
- (215)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
215
(Insertion of Sensitive Information Into Debugging Code)
The product inserts sensitive information into debugging code, which could expose this information if the debugging code is not disabled in production.
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.
Storage of File with Sensitive Data Under Web Root
- (219)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
219
(Storage of File with Sensitive Data Under Web Root)
The product stores sensitive data under the web document root with insufficient access control, which might make it accessible to untrusted parties.
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.
Storage of File With Sensitive Data Under FTP Root
- (220)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
220
(Storage of File With Sensitive Data Under FTP Root)
The product stores sensitive data under the FTP server root with insufficient access control, which might make it accessible to untrusted parties.
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)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
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)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
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.
Plaintext Storage of a Password
- (256)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
256
(Plaintext Storage of a Password)
Storing a password in plaintext may result in a system compromise.
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.
Storing Passwords in a Recoverable Format
- (257)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
257
(Storing Passwords in a Recoverable Format)
The storage of passwords in a recoverable format makes them subject to password reuse attacks by malicious users. In fact, it should be noted that recoverable encrypted passwords provide no significant benefit over plaintext passwords since they are subject not only to reuse by malicious attackers but also by malicious insiders. If a system administrator can recover a password directly, or use a brute force search on the available information, the administrator can use the password on other accounts.
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.
Password in Configuration File
- (260)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
260
(Password in Configuration File)
The product stores a password in a configuration file that might be accessible to actors who do not know the password.
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.
Missing Encryption of Sensitive Data
- (311)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
311
(Missing Encryption of Sensitive Data)
The product does not encrypt sensitive or critical information before storage or transmission.
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.
Cleartext Storage of Sensitive Information
- (312)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
312
(Cleartext Storage of Sensitive Information)
The product stores sensitive information in cleartext within a resource that might be accessible to another control sphere.
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.
Cleartext Storage in a File or on Disk
- (313)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
313
(Cleartext Storage in a File or on Disk)
The product stores sensitive information in cleartext in a file, or on disk.
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.
Cleartext Storage in the Registry
- (314)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
314
(Cleartext Storage in the Registry)
The product stores sensitive information in cleartext in the registry.
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.
Cleartext Storage of Sensitive Information in a Cookie
- (315)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
315
(Cleartext Storage of Sensitive Information in a Cookie)
The product stores sensitive information in cleartext in a cookie.
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.
Cleartext Storage of Sensitive Information in Memory
- (316)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
316
(Cleartext Storage of Sensitive Information in Memory)
The product stores sensitive information in cleartext in memory.
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.
Cleartext Storage of Sensitive Information in GUI
- (317)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
317
(Cleartext Storage of Sensitive Information in GUI)
The product stores sensitive information in cleartext within the GUI.
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.
Cleartext Storage of Sensitive Information in Executable
- (318)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
318
(Cleartext Storage of Sensitive Information in Executable)
The product stores sensitive information in cleartext in an executable.
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.
Cleartext Transmission of Sensitive Information
- (319)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
319
(Cleartext Transmission of Sensitive Information)
The product transmits sensitive or security-critical data in cleartext in a communication channel that can be sniffed by unauthorized 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.
Passing Mutable Objects to an Untrusted Method
- (374)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
374
(Passing Mutable Objects to an Untrusted Method)
The product sends non-cloned mutable data as an argument to a method or function.
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.
Returning a Mutable Object to an Untrusted Caller
- (375)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
375
(Returning a Mutable Object to an Untrusted Caller)
Sending non-cloned mutable data as a return value may result in that data being altered or deleted by the calling 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.
Transmission of Private Resources into a New Sphere ('Resource Leak')
- (402)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
402
(Transmission of Private Resources into a New Sphere ('Resource Leak'))
The product makes resources available to untrusted parties when those resources are only intended to be accessed by the product.
Resource Leak
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)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
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
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.
Unparsed Raw Web Content Delivery
- (433)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
433
(Unparsed Raw Web Content Delivery)
The product stores raw content or supporting code under the web document root with an extension that is not specifically handled by the server.
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.
Private Data Structure Returned From A Public Method
- (495)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
495
(Private Data Structure Returned From A Public Method)
The product has a method that is declared public, but returns a reference to a private data structure, which could then be modified in unexpected ways.
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 Sensitive System Information to an Unauthorized Control Sphere
- (497)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
497
(Exposure of Sensitive System Information to an Unauthorized Control Sphere)
The product does not properly prevent sensitive system-level information from being accessed by unauthorized actors who do not have the same level of access to the underlying system as the product does.
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.
Cloneable Class Containing Sensitive Information
- (498)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
498
(Cloneable Class Containing Sensitive Information)
The code contains a class with sensitive data, but the class is cloneable. The data can then be accessed by cloning the class.
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.
Serializable Class Containing Sensitive Data
- (499)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
499
(Serializable Class Containing Sensitive Data)
The code contains a class with sensitive data, but the class does not explicitly deny serialization. The data can be accessed by serializing the class through another class.
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.
J2EE Misconfiguration: Data Transmission Without Encryption
- (5)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
5
(J2EE Misconfiguration: Data Transmission Without Encryption)
Information sent over a network can be compromised while in transit. An attacker may be able to read or modify the contents if the data are sent in plaintext or are weakly encrypted.
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.
Trust Boundary Violation
- (501)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
501
(Trust Boundary Violation)
The product mixes trusted and untrusted data in the same data structure or structured message.
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.
Insufficiently Protected Credentials
- (522)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
522
(Insufficiently Protected Credentials)
The product transmits or stores authentication credentials, but it uses an insecure method that is susceptible to unauthorized interception and/or retrieval.
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.
Unprotected Transport of Credentials
- (523)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
523
(Unprotected Transport of Credentials)
Login pages do not use adequate measures to protect the user name and password while they are in transit from the client to the server.
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.
Cleartext Storage of Sensitive Information in an Environment Variable
- (526)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
526
(Cleartext Storage of Sensitive Information in an Environment Variable)
The product uses an environment variable to store unencrypted sensitive information.
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 Version-Control Repository to an Unauthorized Control Sphere
- (527)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
527
(Exposure of Version-Control Repository to an Unauthorized Control Sphere)
The product stores a CVS, git, or other repository 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.
Exposure of Core Dump File to an Unauthorized Control Sphere
- (528)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
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.
Exposure of Access Control List Files to an Unauthorized Control Sphere
- (529)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
529
(Exposure of Access Control List Files to an Unauthorized Control Sphere)
The product stores access control list files in a directory or other container that is accessible to actors outside of the intended control sphere.
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 Backup File to an Unauthorized Control Sphere
- (530)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
530
(Exposure of Backup File to an Unauthorized Control Sphere)
A backup file is stored in a directory or archive that is made accessible to unauthorized 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.
Insertion of Sensitive Information into Log File
- (532)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
532
(Insertion of Sensitive Information into Log File)
The product writes sensitive information to a log 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.
Exposure of Information Through Shell Error Message
- (535)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
535
(Exposure of Information Through Shell Error Message)
A command shell error message indicates that there exists an unhandled exception in the web application code. In many cases, an attacker can leverage the conditions that cause these errors in order to gain unauthorized access to the system.
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.
Servlet Runtime Error Message Containing Sensitive Information
- (536)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
536
(Servlet Runtime Error Message Containing Sensitive Information)
A servlet error message indicates that there exists an unhandled exception in your web application code and may provide useful information to an attacker.
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.
Java Runtime Error Message Containing Sensitive Information
- (537)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
537
(Java Runtime Error Message Containing Sensitive Information)
In many cases, an attacker can leverage the conditions that cause unhandled exception errors in order to gain unauthorized access to the system.
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.
Insertion of Sensitive Information into Externally-Accessible File or Directory
- (538)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
538
(Insertion of Sensitive Information into Externally-Accessible File or Directory)
The product places sensitive information into files or directories that are accessible to actors who are allowed to have access to the files, but not to the sensitive information.
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 Persistent Cookies Containing Sensitive Information
- (539)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
539
(Use of Persistent Cookies Containing Sensitive Information)
The web application uses persistent cookies, but the cookies contain sensitive information.
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.
Inclusion of Sensitive Information in Source Code
- (540)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
540
(Inclusion of Sensitive Information in Source Code)
Source code on a web server or repository often contains sensitive information and should generally not be accessible to users.
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.
Inclusion of Sensitive Information in an Include File
- (541)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
541
(Inclusion of Sensitive Information in an Include File)
If an include file source is accessible, the file can contain usernames and passwords, as well as sensitive information pertaining to the application and system.
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.
Suspicious Comment
- (546)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
546
(Suspicious Comment)
The code contains comments that suggest the presence of bugs, incomplete functionality, or 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.
Exposure of Information Through Directory Listing
- (548)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
548
(Exposure of Information Through Directory Listing)
A directory listing is inappropriately exposed, yielding potentially sensitive information to attackers.
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.
Server-generated Error Message Containing Sensitive Information
- (550)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
550
(Server-generated Error Message Containing Sensitive Information)
Certain conditions, such as network failure, will cause a server error message to be displayed.
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)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
552
(Files or Directories Accessible to External Parties)
The product makes files or directories accessible to unauthorized actors, even though they should not be.
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.
J2EE Misconfiguration: Plaintext Password in Configuration File
- (555)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
555
(J2EE Misconfiguration: Plaintext Password in Configuration File)
The J2EE application stores a plaintext password in a configuration 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.
Sensitive Data Storage in Improperly Locked Memory
- (591)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
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.
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 GET Request Method With Sensitive Query Strings
- (598)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
598
(Use of GET Request Method With Sensitive Query Strings)
The web application uses the HTTP GET method to process a request and includes sensitive information in the query string of that request.
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.
Public Static Final Field References Mutable Object
- (607)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
607
(Public Static Final Field References Mutable Object)
A public or protected static final field references a mutable object, which allows the object to be changed by malicious code, or accidentally from another package.
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 Authorization of Index Containing Sensitive Information
- (612)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
612
(Improper Authorization of Index Containing Sensitive Information)
The product creates a search index of private or sensitive documents, but it does not properly limit index access to actors who are authorized to see the original information.
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.
Inclusion of Sensitive Information in Source Code Comments
- (615)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
615
(Inclusion of Sensitive Information in Source Code Comments)
While adding general comments is very useful, some programmers tend to leave important data, such as: filenames related to the web application, old links or links which were not meant to be browsed by users, old code fragments, etc.
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.
External Control of Critical State Data
- (642)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
642
(External Control of Critical State Data)
The product stores security-critical state information about its users, or the product itself, in a location that is accessible to unauthorized actors.
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.
Exposure of Resource to Wrong Sphere
- (668)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
668
(Exposure of Resource to Wrong Sphere)
The product exposes a resource to the wrong control sphere, providing unintended actors with inappropriate access to the resource.
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 Resource Transfer Between Spheres
- (669)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
669
(Incorrect Resource Transfer Between Spheres)
The product does not properly transfer a resource/behavior to another sphere, or improperly imports a resource/behavior from another sphere, in a manner that provides unintended control over that resource.
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.
J2EE Misconfiguration: Missing Custom Error Page
- (7)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
7
(J2EE Misconfiguration: Missing Custom Error Page)
The default error page of a web application should not display sensitive information about the product.
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 Custom Error Page
- (756)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
756
(Missing Custom Error Page)
The product does not return custom error pages to the user, possibly exposing sensitive information.
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.
Access to Critical Private Variable via Public Method
- (767)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
767
(Access to Critical Private Variable via Public Method)
The product defines a public method that reads or modifies a private variable.
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.
J2EE Misconfiguration: Entity Bean Declared Remote
- (8)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
963
(SFP Secondary Cluster: Exposed Data) >
8
(J2EE Misconfiguration: Entity Bean Declared Remote)
When an application exposes a remote interface for an entity bean, it might also expose methods that get or set the bean's data. These methods could be leveraged to read sensitive information, or to change data in ways that violate the application's expectations, potentially leading to other vulnerabilities.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Exposure Temporary File
- (964)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
964
(SFP Secondary Cluster: Exposure Temporary File)
This category identifies Software Fault Patterns (SFPs) within the Exposure Temporary File cluster.
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.
Insecure Temporary File
- (377)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
964
(SFP Secondary Cluster: Exposure Temporary File) >
377
(Insecure Temporary File)
Creating and using insecure temporary files can leave application and system data vulnerable to attack.
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 With Insecure Permissions
- (378)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
964
(SFP Secondary Cluster: Exposure Temporary File) >
378
(Creation of Temporary File With Insecure Permissions)
Opening temporary files without appropriate measures or controls can leave the file, its contents and any function that it impacts vulnerable to attack.
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)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
964
(SFP Secondary Cluster: Exposure Temporary File) >
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.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Insecure Session Management
- (965)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
965
(SFP Secondary Cluster: Insecure Session Management)
This category identifies Software Fault Patterns (SFPs) within the Insecure Session Management cluster.
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 Data Element to Wrong Session
- (488)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
965
(SFP Secondary Cluster: Insecure Session Management) >
488
(Exposure of Data Element to Wrong Session)
The product does not sufficiently enforce boundaries between the states of different sessions, causing data to be provided to, or used by, the wrong session.
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 Cache Containing Sensitive Information
- (524)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
965
(SFP Secondary Cluster: Insecure Session Management) >
524
(Use of Cache Containing Sensitive Information)
The code uses a cache that contains sensitive information, but the cache can be read by an actor outside of the intended control sphere.
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.
J2EE Misconfiguration: Insufficient Session-ID Length
- (6)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
965
(SFP Secondary Cluster: Insecure Session Management) >
6
(J2EE Misconfiguration: Insufficient Session-ID Length)
The J2EE application is configured to use an insufficient session ID length.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Other Exposures
- (966)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
966
(SFP Secondary Cluster: Other Exposures)
This category identifies Software Fault Patterns (SFPs) within the Other Exposures cluster.
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.
Insecure Default Variable Initialization
- (453)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
966
(SFP Secondary Cluster: Other Exposures) >
453
(Insecure Default Variable Initialization)
The product, by default, initializes an internal variable with an insecure or less secure value than is possible.
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.
Reliance on Package-level Scope
- (487)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
966
(SFP Secondary Cluster: Other Exposures) >
487
(Reliance on Package-level Scope)
Java packages are not inherently closed; therefore, relying on them for code security is not a good practice.
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 Inner Class Containing Sensitive Data
- (492)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
966
(SFP Secondary Cluster: Other Exposures) >
492
(Use of Inner Class Containing Sensitive Data)
Inner classes are translated into classes that are accessible at package scope and may expose code that the programmer intended to keep private to attackers.
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 Web Browser Cache Containing Sensitive Information
- (525)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
966
(SFP Secondary Cluster: Other Exposures) >
525
(Use of Web Browser Cache Containing Sensitive Information)
The web application does not use an appropriate caching policy that specifies the extent to which each web page and associated form fields should be cached.
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 Cookie in HTTPS Session Without 'Secure' Attribute
- (614)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
966
(SFP Secondary Cluster: Other Exposures) >
614
(Sensitive Cookie in HTTPS Session Without 'Secure' Attribute)
The Secure attribute for sensitive cookies in HTTPS sessions is not set, which could cause the user agent to send those cookies in plaintext over an HTTP session.
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 WSDL File Containing Sensitive Information
- (651)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
966
(SFP Secondary Cluster: Other Exposures) >
651
(Exposure of WSDL File Containing Sensitive Information)
The Web services architecture may require exposing a Web Service Definition Language (WSDL) file that contains information on the publicly accessible services and how callers of these services should interact with them (e.g. what parameters they expect and what types they return).
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: State Disclosure
- (967)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
967
(SFP Secondary Cluster: State Disclosure)
This category identifies Software Fault Patterns (SFPs) within the State Disclosure cluster.
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 Sensitive Information Through Data Queries
- (202)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
967
(SFP Secondary Cluster: State Disclosure) >
202
(Exposure of Sensitive Information Through Data Queries)
When trying to keep information confidential, an attacker can often infer some of the information by using statistics.
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.
Observable Discrepancy
- (203)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
967
(SFP Secondary Cluster: State Disclosure) >
203
(Observable Discrepancy)
The product behaves differently or sends different responses under different circumstances in a way that is observable to an unauthorized actor, which exposes security-relevant information about the state of the product, such as whether a particular operation was successful or not.
Side Channel Attack
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.
Observable Response Discrepancy
- (204)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
967
(SFP Secondary Cluster: State Disclosure) >
204
(Observable Response Discrepancy)
The product provides different responses to incoming requests in a way that reveals internal state information to an unauthorized actor outside of the intended control sphere.
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.
Observable Behavioral Discrepancy
- (205)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
967
(SFP Secondary Cluster: State Disclosure) >
205
(Observable Behavioral Discrepancy)
The product's behaviors indicate important differences that may be observed by unauthorized actors in a way that reveals (1) its internal state or decision process, or (2) differences from other products with equivalent functionality.
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.
Observable Internal Behavioral Discrepancy
- (206)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
967
(SFP Secondary Cluster: State Disclosure) >
206
(Observable Internal Behavioral Discrepancy)
The product performs multiple behaviors that are combined to produce a single result, but the individual behaviors are observable separately in a way that allows attackers to reveal internal state or internal decision points.
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.
Observable Behavioral Discrepancy With Equivalent Products
- (207)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
967
(SFP Secondary Cluster: State Disclosure) >
207
(Observable Behavioral Discrepancy With Equivalent Products)
The product operates in an environment in which its existence or specific identity should not be known, but it behaves differently than other products with equivalent functionality, in a way that is observable to an attacker.
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.
Observable Timing Discrepancy
- (208)
888
(Software Fault Pattern (SFP) Clusters) >
895
(SFP Primary Cluster: Information Leak) >
967
(SFP Secondary Cluster: State Disclosure) >
208
(Observable Timing Discrepancy)
Two separate operations in a product require different amounts of time to complete, in a way that is observable to an actor and reveals security-relevant information about the state of the product, such as whether a particular operation was successful or not.
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Primary Cluster: Tainted Input
- (896)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input)
This category identifies Software Fault Patterns (SFPs) within the Tainted Input cluster (SFP24, SFP25, SFP26, SFP27).
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Tainted Input to Command
- (990)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command)
This category identifies Software Fault Patterns (SFPs) within the Tainted Input to Command cluster (SFP24).
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.
Struts: Duplicate Validation Forms
- (102)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
102
(Struts: Duplicate Validation Forms)
The product uses multiple validation forms with the same name, which might cause the Struts Validator to validate a form that the programmer does not expect.
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.
Struts: Incomplete validate() Method Definition
- (103)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
103
(Struts: Incomplete validate() Method Definition)
The product has a validator form that either does not define a validate() method, or defines a validate() method but does not call super.validate().
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.
Struts: Form Bean Does Not Extend Validation Class
- (104)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
104
(Struts: Form Bean Does Not Extend Validation Class)
If a form bean does not extend an ActionForm subclass of the Validator framework, it can expose the application to other weaknesses related to insufficient input validation.
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.
Struts: Form Field Without Validator
- (105)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
105
(Struts: Form Field Without Validator)
The product has a form field that is not validated by a corresponding validation form, which can introduce other weaknesses related to insufficient input validation.
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.
Struts: Plug-in Framework not in Use
- (106)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
106
(Struts: Plug-in Framework not in Use)
When an application does not use an input validation framework such as the Struts Validator, there is a greater risk of introducing weaknesses related to insufficient input validation.
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.
Struts: Unused Validation Form
- (107)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
107
(Struts: Unused Validation Form)
An unused validation form indicates that validation logic is not up-to-date.
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.
Struts: Unvalidated Action Form
- (108)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
108
(Struts: Unvalidated Action Form)
Every Action Form must have a corresponding validation form.
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.
Struts: Validator Turned Off
- (109)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
109
(Struts: Validator Turned Off)
Automatic filtering via a Struts bean has been turned off, which disables the Struts Validator and custom validation logic. This exposes the application to other weaknesses related to insufficient input validation.
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.
Struts: Validator Without Form Field
- (110)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
110
(Struts: Validator Without Form Field)
Validation fields that do not appear in forms they are associated with indicate that the validation logic is out of date.
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 XML Validation
- (112)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
112
(Missing XML Validation)
The product accepts XML from an untrusted source but does not validate the XML against the proper schema.
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 Neutralization of CRLF Sequences in HTTP Headers ('HTTP Request/Response Splitting')
- (113)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
113
(Improper Neutralization of CRLF Sequences in HTTP Headers ('HTTP Request/Response Splitting'))
The product receives data from an HTTP agent/component (e.g., web server, proxy, browser, etc.), but it does not neutralize or incorrectly neutralizes CR and LF characters before the data is included in outgoing HTTP headers.
HTTP Request Splitting
HTTP Response Splitting
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 Length Parameter Inconsistency
- (130)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
130
(Improper Handling of Length Parameter Inconsistency)
The product parses a formatted message or structure, but it does not handle or incorrectly handles a length field that is inconsistent with the actual length of the associated data.
length manipulation
length tampering
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)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
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.
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 Neutralization of Special Elements
- (138)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
138
(Improper Neutralization of Special Elements)
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could be interpreted as control elements or syntactic markers when they are sent to a downstream component.
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 Delimiters
- (140)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
140
(Improper Neutralization of Delimiters)
The product does not neutralize or incorrectly neutralizes delimiters.
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 Neutralization of Parameter/Argument Delimiters
- (141)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
141
(Improper Neutralization of Parameter/Argument Delimiters)
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could be interpreted as parameter or argument delimiters when they are sent to a downstream component.
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 Neutralization of Value Delimiters
- (142)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
142
(Improper Neutralization of Value Delimiters)
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could be interpreted as value delimiters when they are sent to a downstream component.
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 Neutralization of Record Delimiters
- (143)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
143
(Improper Neutralization of Record Delimiters)
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could be interpreted as record delimiters when they are sent to a downstream component.
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 Neutralization of Line Delimiters
- (144)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
144
(Improper Neutralization of Line Delimiters)
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could be interpreted as line delimiters when they are sent to a downstream component.
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 Neutralization of Section Delimiters
- (145)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
145
(Improper Neutralization of Section Delimiters)
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could be interpreted as section delimiters when they are sent to a downstream component.
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 Neutralization of Expression/Command Delimiters
- (146)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
146
(Improper Neutralization of Expression/Command Delimiters)
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could be interpreted as expression or command delimiters when they are sent to a downstream component.
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 Neutralization of Input Terminators
- (147)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
147
(Improper Neutralization of Input Terminators)
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could be interpreted as input terminators when they are sent to a downstream component.
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 Neutralization of Input Leaders
- (148)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
148
(Improper Neutralization of Input Leaders)
The product does not properly handle when a leading character or sequence ("leader") is missing or malformed, or if multiple leaders are used when only one should be allowed.
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 Neutralization of Quoting Syntax
- (149)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
149
(Improper Neutralization of Quoting Syntax)
Quotes injected into a product can be used to compromise a system. As data are parsed, an injected/absent/duplicate/malformed use of quotes may cause the process to take unexpected actions.
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 Neutralization of Escape, Meta, or Control Sequences
- (150)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
150
(Improper Neutralization of Escape, Meta, or Control Sequences)
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could be interpreted as escape, meta, or control character sequences when they are sent to a downstream component.
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 Neutralization of Comment Delimiters
- (151)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
151
(Improper Neutralization of Comment Delimiters)
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could be interpreted as comment delimiters when they are sent to a downstream component.
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 Neutralization of Macro Symbols
- (152)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
152
(Improper Neutralization of Macro Symbols)
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could be interpreted as macro symbols when they are sent to a downstream component.
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 Neutralization of Substitution Characters
- (153)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
153
(Improper Neutralization of Substitution Characters)
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could be interpreted as substitution characters when they are sent to a downstream component.
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 Neutralization of Variable Name Delimiters
- (154)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
154
(Improper Neutralization of Variable Name Delimiters)
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could be interpreted as variable name delimiters when they are sent to a downstream component.
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 Neutralization of Wildcards or Matching Symbols
- (155)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
155
(Improper Neutralization of Wildcards or Matching Symbols)
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could be interpreted as wildcards or matching symbols when they are sent to a downstream component.
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 Neutralization of Whitespace
- (156)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
156
(Improper Neutralization of Whitespace)
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could be interpreted as whitespace when they are sent to a downstream component.
White space
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.
Failure to Sanitize Paired Delimiters
- (157)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
157
(Failure to Sanitize Paired Delimiters)
The product does not properly handle the characters that are used to mark the beginning and ending of a group of entities, such as parentheses, brackets, and braces.
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 Neutralization of Null Byte or NUL Character
- (158)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
158
(Improper Neutralization of Null Byte or NUL Character)
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes NUL characters or null bytes when they are sent to a downstream component.
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 Handling of Invalid Use of Special Elements
- (159)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
159
(Improper Handling of Invalid Use of Special Elements)
The product does not properly filter, remove, quote, or otherwise manage the invalid use of special elements in user-controlled input, which could cause adverse effect on its behavior and integrity.
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 Neutralization of Leading Special Elements
- (160)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
160
(Improper Neutralization of Leading Special Elements)
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes leading special elements that could be interpreted in unexpected ways when they are sent to a downstream component.
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 Neutralization of Multiple Leading Special Elements
- (161)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
161
(Improper Neutralization of Multiple Leading Special Elements)
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes multiple leading special elements that could be interpreted in unexpected ways when they are sent to a downstream component.
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 Neutralization of Trailing Special Elements
- (162)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
162
(Improper Neutralization of Trailing Special Elements)
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes trailing special elements that could be interpreted in unexpected ways when they are sent to a downstream component.
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 Neutralization of Multiple Trailing Special Elements
- (163)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
163
(Improper Neutralization of Multiple Trailing Special Elements)
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes multiple trailing special elements that could be interpreted in unexpected ways when they are sent to a downstream component.
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 Neutralization of Internal Special Elements
- (164)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
164
(Improper Neutralization of Internal Special Elements)
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes internal special elements that could be interpreted in unexpected ways when they are sent to a downstream component.
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 Neutralization of Multiple Internal Special Elements
- (165)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
165
(Improper Neutralization of Multiple Internal Special Elements)
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes multiple internal special elements that could be interpreted in unexpected ways when they are sent to a downstream component.
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.
Permissive List of Allowed Inputs
- (183)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
183
(Permissive List of Allowed Inputs)
The product implements a protection mechanism that relies on a list of inputs (or properties of inputs) that are explicitly allowed by policy because the inputs are assumed to be safe, but the list is too permissive - that is, it allows an input that is unsafe, leading to resultant weaknesses.
Allowlist / Allow List
Safelist / Safe List
Whitelist / White List
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.
Incomplete List of Disallowed Inputs
- (184)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
184
(Incomplete List of Disallowed Inputs)
The product implements a protection mechanism that relies on a list of inputs (or properties of inputs) that are not allowed by policy or otherwise require other action to neutralize before additional processing takes place, but the list is incomplete.
Denylist / Deny List
Blocklist / Block List
Blacklist / Black List
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 Regular Expression
- (185)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
185
(Incorrect Regular Expression)
The product specifies a regular expression in a way that causes data to be improperly matched or compared.
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.
Overly Restrictive Regular Expression
- (186)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
186
(Overly Restrictive Regular Expression)
A regular expression is overly restrictive, which prevents dangerous values from being detected.
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.
Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
- (444)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
444
(Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling'))
The product acts as an intermediary HTTP agent
(such as a proxy or firewall) in the data flow between two
entities such as a client and server, but it does not
interpret malformed HTTP requests or responses in ways that
are consistent with how the messages will be processed by
those entities that are at the ultimate destination.
HTTP Request Smuggling
HTTP Response Smuggling
HTTP Smuggling
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.
Command Shell in Externally Accessible Directory
- (553)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
553
(Command Shell in Externally Accessible Directory)
A possible shell file exists in /cgi-bin/ or other accessible directories. This is extremely dangerous and can be used by an attacker to execute commands on the web server.
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.
ASP.NET Misconfiguration: Not Using Input Validation Framework
- (554)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
554
(ASP.NET Misconfiguration: Not Using Input Validation Framework)
The ASP.NET application does not use an input validation framework.
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.
SQL Injection: Hibernate
- (564)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
564
(SQL Injection: Hibernate)
Using Hibernate to execute a dynamic SQL statement built with user-controlled input can allow an attacker to modify the statement's meaning or to execute arbitrary SQL commands.
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.
URL Redirection to Untrusted Site ('Open Redirect')
- (601)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
601
(URL Redirection to Untrusted Site ('Open Redirect'))
The web application accepts a user-controlled input that specifies a link to an external site, and uses that link in a redirect.
Open Redirect
Cross-site Redirect
Cross-domain Redirect
Unvalidated Redirect
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 Restriction of XML External Entity Reference
- (611)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
611
(Improper Restriction of XML External Entity Reference)
The product processes an XML document that can contain XML entities with URIs that resolve to documents outside of the intended sphere of control, causing the product to embed incorrect documents into its output.
XXE
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.
Dangling Database Cursor ('Cursor Injection')
- (619)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
619
(Dangling Database Cursor ('Cursor Injection'))
If a database cursor is not closed properly, then it could become accessible to other users while retaining the same privileges that were originally assigned, leaving the cursor "dangling."
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.
Variable Extraction Error
- (621)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
621
(Variable Extraction Error)
The product uses external input to determine the names of variables into which information is extracted, without verifying that the names of the specified variables are valid. This could cause the program to overwrite unintended variables.
Variable overwrite
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.
Executable Regular Expression Error
- (624)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
624
(Executable Regular Expression Error)
The product uses a regular expression that either (1) contains an executable component with user-controlled inputs, or (2) allows a user to enable execution by inserting pattern modifiers.
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.
Permissive Regular Expression
- (625)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
625
(Permissive Regular Expression)
The product uses a regular expression that does not sufficiently restrict the set of allowed values.
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.
Null Byte Interaction Error (Poison Null Byte)
- (626)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
626
(Null Byte Interaction Error (Poison Null Byte))
The product does not properly handle null bytes or NUL characters when passing data between different representations or components.
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.
Dynamic Variable Evaluation
- (627)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
627
(Dynamic Variable Evaluation)
In a language where the user can influence the name of a variable at runtime, if the variable names are not controlled, an attacker can read or write to arbitrary variables, or access arbitrary functions.
Dynamic evaluation
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 Restriction of Names for Files and Other Resources
- (641)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
641
(Improper Restriction of Names for Files and Other Resources)
The product constructs the name of a file or other resource using input from an upstream component, but it does not restrict or incorrectly restricts the resulting name.
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 Data within XPath Expressions ('XPath Injection')
- (643)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
643
(Improper Neutralization of Data within XPath Expressions ('XPath Injection'))
The product uses external input to dynamically construct an XPath expression used to retrieve data from an XML database, but it does not neutralize or incorrectly neutralizes that input. This allows an attacker to control the structure of the query.
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 Neutralization of HTTP Headers for Scripting Syntax
- (644)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
644
(Improper Neutralization of HTTP Headers for Scripting Syntax)
The product does not neutralize or incorrectly neutralizes web scripting syntax in HTTP headers that can be used by web browser components that can process raw headers, such as Flash.
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.
Reliance on File Name or Extension of Externally-Supplied File
- (646)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
646
(Reliance on File Name or Extension of Externally-Supplied File)
The product allows a file to be uploaded, but it relies on the file name or extension of the file to determine the appropriate behaviors. This could be used by attackers to cause the file to be misclassified and processed in a dangerous fashion.
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 Data within XQuery Expressions ('XQuery Injection')
- (652)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
652
(Improper Neutralization of Data within XQuery Expressions ('XQuery Injection'))
The product uses external input to dynamically construct an XQuery expression used to retrieve data from an XML database, but it does not neutralize or incorrectly neutralizes that input. This allows an attacker to control the structure of the query.
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)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
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.
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.
Improper Neutralization
- (707)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
707
(Improper Neutralization)
The product does not ensure or incorrectly ensures that structured messages or data are well-formed and that certain security properties are met before being read from an upstream component or sent to a downstream component.
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 Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')
- (74)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
74
(Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection'))
The product constructs all or part of a command, data structure, or record using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify how it is parsed or interpreted when it is sent to a downstream component.
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.
Failure to Sanitize Special Elements into a Different Plane (Special Element Injection)
- (75)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
75
(Failure to Sanitize Special Elements into a Different Plane (Special Element Injection))
The product does not adequately filter user-controlled input for special elements with control implications.
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 Equivalent Special Elements
- (76)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
76
(Improper Neutralization of Equivalent Special Elements)
The product correctly neutralizes certain special elements, but it improperly neutralizes equivalent special elements.
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 Neutralization of Special Elements used in a Command ('Command Injection')
- (77)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
77
(Improper Neutralization of Special Elements used in a Command ('Command Injection'))
The product constructs all or part of a command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended command when it is sent to a downstream component.
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 Special Elements used in an OS Command ('OS Command Injection')
- (78)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
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 Input During Web Page Generation ('Cross-site Scripting')
- (79)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
79
(Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'))
The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.
XSS
HTML Injection
CSS
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 Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS)
- (80)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
80
(Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS))
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes special characters such as "<", ">", and "&" that could be interpreted as web-scripting elements when they are sent to a downstream component that processes web pages.
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 Neutralization of Script in an Error Message Web Page
- (81)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
81
(Improper Neutralization of Script in an Error Message Web Page)
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes special characters that could be interpreted as web-scripting elements when they are sent to an error page.
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 Neutralization of Script in Attributes of IMG Tags in a Web Page
- (82)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
82
(Improper Neutralization of Script in Attributes of IMG Tags in a Web Page)
The web application does not neutralize or incorrectly neutralizes scripting elements within attributes of HTML IMG tags, such as the src attribute.
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 Neutralization of Script in Attributes in a Web Page
- (83)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
83
(Improper Neutralization of Script in Attributes in a Web Page)
The product does not neutralize or incorrectly neutralizes "javascript:" or other URIs from dangerous attributes within tags, such as onmouseover, onload, onerror, or style.
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 Neutralization of Encoded URI Schemes in a Web Page
- (84)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
84
(Improper Neutralization of Encoded URI Schemes in a Web Page)
The web application improperly neutralizes user-controlled input for executable script disguised with URI encodings.
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.
Doubled Character XSS Manipulations
- (85)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
85
(Doubled Character XSS Manipulations)
The web application does not filter user-controlled input for executable script disguised using doubling of the involved characters.
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 Neutralization of Invalid Characters in Identifiers in Web Pages
- (86)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
86
(Improper Neutralization of Invalid Characters in Identifiers in Web Pages)
The product does not neutralize or incorrectly neutralizes invalid characters or byte sequences in the middle of tag names, URI schemes, and other identifiers.
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 Neutralization of Alternate XSS Syntax
- (87)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
87
(Improper Neutralization of Alternate XSS Syntax)
The product does not neutralize or incorrectly neutralizes user-controlled input for alternate script syntax.
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)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
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.
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 SQL Command ('SQL Injection')
- (89)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
89
(Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection'))
The product constructs all or part of an SQL command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended SQL command when it is sent to a downstream component. Without sufficient removal or quoting of SQL syntax in user-controllable inputs, the generated SQL query can cause those inputs to be interpreted as SQL instead of ordinary user data.
SQL injection
SQLi
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 LDAP Query ('LDAP Injection')
- (90)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
90
(Improper Neutralization of Special Elements used in an LDAP Query ('LDAP Injection'))
The product constructs all or part of an LDAP query using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended LDAP query when it is sent to a downstream component.
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.
XML Injection (aka Blind XPath Injection)
- (91)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
91
(XML Injection (aka Blind XPath Injection))
The product does not properly neutralize special elements that are used in XML, allowing attackers to modify the syntax, content, or commands of the XML before it is processed by an end system.
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 CRLF Sequences ('CRLF Injection')
- (93)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
93
(Improper Neutralization of CRLF Sequences ('CRLF Injection'))
The product uses CRLF (carriage return line feeds) as a special element, e.g. to separate lines or records, but it does not neutralize or incorrectly neutralizes CRLF sequences from inputs.
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 Neutralization of Directives in Dynamically Evaluated Code ('Eval Injection')
- (95)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
95
(Improper Neutralization of Directives in Dynamically Evaluated Code ('Eval Injection'))
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes code syntax before using the input in a dynamic evaluation call (e.g. "eval").
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 Directives in Statically Saved Code ('Static Code Injection')
- (96)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
96
(Improper Neutralization of Directives in Statically Saved Code ('Static Code Injection'))
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes code syntax before inserting the input into an executable resource, such as a library, configuration file, or template.
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 Neutralization of Server-Side Includes (SSI) Within a Web Page
- (97)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
97
(Improper Neutralization of Server-Side Includes (SSI) Within a Web Page)
The product generates a web page, but does not neutralize or incorrectly neutralizes user-controllable input that could be interpreted as a server-side include (SSI) directive.
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 Control of Resource Identifiers ('Resource Injection')
- (99)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
990
(SFP Secondary Cluster: Tainted Input to Command) >
99
(Improper Control of Resource Identifiers ('Resource Injection'))
The product receives input from an upstream component, but it does not restrict or incorrectly restricts the input before it is used as an identifier for a resource that may be outside the intended sphere of control.
Insecure Direct Object Reference
Category - a CWE entry that contains a set of other entries that share a common characteristic.
SFP Secondary Cluster: Tainted Input to Environment
- (991)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
991
(SFP Secondary Cluster: Tainted Input to Environment)
This category identifies Software Fault Patterns (SFPs) within the Tainted Input to Environment cluster (SFP27).
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.
Process Control
- (114)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
991
(SFP Secondary Cluster: Tainted Input to Environment) >
114
(Process Control)
Executing commands or loading libraries from an untrusted source or in an untrusted environment can cause an application to execute malicious commands (and payloads) on behalf of an attacker.
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.
Uncontrolled Search Path Element
- (427)
888
(Software Fault Pattern (SFP) Clusters) >
896
(SFP Primary Cluster: Tainted Input) >
991
(SFP Secondary Cluster: Tainted Input to Environment) >
427
(Uncontrolled Search Path Element)
The product uses a fixed or controlled search path to find resources, but one or more locations in that path can be under the control of unintended actors.
DLL preloading
Binary planting
Insecure library loading
|