Weaknesses in the 2023 CWE Top 25 Most Dangerous Software Weaknesses
A view in the Common Weakness Enumeration published by The MITRE Corporation.
Views in the Common Weakness Enumeration (CWE) represent one perspective with which to consider a set of weaknesses.
CWE entries in this view are listed in the 2023 CWE Top 25 Most Dangerous Software Weaknesses.
Educators can use this view to focus curriculum and teachings on the most dangerous weaknesses.
Customers can use the weaknesses in this view in order to formulate independent evidence of a claim by a product vendor to have eliminated / mitigated the most dangerous weaknesses.
By following the CWE Top 25, developers are able to significantly reduce the number of weaknesses that occur in their software.
The product contains a code sequence that can run concurrently with other code, and the code sequence requires temporary, exclusive access to a shared resource, but a ...
The web application does not, or can not, sufficiently verify whether a well-formed, valid, consistent request was intentionally provided by the user who submitted the...
The product deserializes untrusted data without sufficiently verifying that the resulting data will be valid.
When an actor claims to have a given identity, the product does not prove or insufficiently proves that the claim is correct.
The product constructs all or part of a code segment using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralize...
The product receives input or data, but it does not validate or incorrectly validates that the input has the properties that are required to process th...
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 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.
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 spe...
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...
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 neutralize...
The product does not properly assign, modify, track, or check privileges for an actor, creating an unintended sphere of control for that actor.
The product performs operations on a memory buffer, but it can read from or write to a memory location that is outside of the intended boundary of the buffer.
The product performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly perform the check. This allows ...
During installation, installed file permissions are set to allow anyone to modify those files.
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 o...
The product does not perform any authentication for functionality that requires a provable user identity or consumes a significant amount of resources.
The product does not perform an authorization check when an actor attempts to access a resource or perform an action.
A NULL pointer dereference occurs when the application dereferences a pointer that it expects to be valid, but is NULL, typically causing a crash or exit.
The product reads data past the end, or before the beginning, of the intended buffer.
The product writes data past the end, or before the beginning, of the intended buffer.
The web server receives a URL or similar request from an upstream component and retrieves the contents of this URL, but it does not sufficiently ensure that the reques...
The product allows the attacker to upload or transfer files of dangerous types that can be automatically processed within the product's environment.
Referencing memory after it has been freed can cause a program to crash, use unexpected values, or execute code.
The product contains hard-coded credentials, such as a password or cryptographic key, which it uses for its own inbound authentication, outbound communication to exter...