CWE-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.
Browse cwe in implementation with official CWE context and Glexia analysis.
Search And Filters
Showing 50 of 481 CWE records · Page 5 of 10.
[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.
Catching NullPointerException should not be used as an alternative to programmatic checks to prevent dereferencing a null pointer.
The product does not properly control the allocation and maintenance of a limited resource.
The product does not sufficiently track and release allocated memory after it has been used, making the memory unavailable for reallocation and reuse.
The product does not release or incorrectly releases a resource before it is made available for re-use.
The product does not sufficiently monitor or control transmitted network traffic volume, so that an actor can cause the product to transmit more traffic than should be allowed for that actor.
The product's resource pool is not large enough to handle peak demand, which allows an attacker to prevent others from accessing the resource by using a (relatively) large number of requests for resources.
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.
The product does not lock or does not correctly lock a resource when the product must have exclusive access to the resource.
A product does not check to see if a lock is present before performing sensitive operations on a resource.
The product calls free() twice on the same memory address.
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.
The product searches for critical resources using an externally-supplied search path that can point to resources that are not under the product's direct control.
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.
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.
A handler is not available or implemented.
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.
The product allows the upload or transfer of dangerous file types that are automatically processed within its environment.
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.
The UI has multiple interpretations of user input but does not prompt the user when it selects the less secure interpretation.
The user interface (UI) does not properly represent critical information to the user, allowing the information - or its source - to be obscured or spoofed. This is often a component in phishing attacks.
The product initializes critical internal variables or data stores using inputs that can be modified by untrusted actors.
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.
The product does not initialize critical variables, which causes the execution environment to use unexpected values.
The code uses a variable that has not been initialized, leading to unpredictable or unintended results.
The product does not properly "clean up" and remove temporary or supporting resources after they have been used.
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.
The accidental addition of a data-structure sentinel can cause serious programming logic problems.
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.
In C and C++, one may often accidentally refer to the wrong memory due to the semantics of when math operations are implicitly scaled.
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.
The product uses external input with reflection to select which classes or code to use, but it does not sufficiently prevent the input from selecting improper classes or code.
The product does not properly protect an assumed-immutable element from being modified by an attacker.
The web application does not sufficiently verify inputs that are assumed to be immutable but are actually externally controllable, such as hidden form fields.
A PHP application does not properly protect against the modification of variables from external sources, such as query parameters or cookies. This can expose the application to numerous weaknesses that would not exist otherwise.
The product dereferences a pointer that it expects to be valid but is NULL.
The code uses deprecated or obsolete functions, which suggests that the code has not been actively reviewed or maintained.
The code does not have a default case in an expression with multiple conditions, such as a switch statement.
The product defines a signal handler that calls a non-reentrant function.
The code uses an operator for assignment when the intention was to perform a comparison.
The code does not explicitly delimit a block that is intended to contain 2 or more statements, creating a logic error.
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.
The product compares classes by name, which can cause it to use the wrong class when multiple classes can have the same name.
Java packages are not inherently closed; therefore, relying on them for code security is not a good practice.
A class has a cloneable() method that is not declared final, which allows an object to be created without calling the constructor. This can cause the object to be in an unexpected state.
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.
The product has a critical public variable that is not final, which allows the variable to be modified to contain unexpected values.
The product downloads source code or an executable from a remote location and executes the code without sufficiently verifying the origin and integrity of the code.
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.
Assigning public data to a private array is equivalent to giving public access to the array.