Home/CWE
CWE

Common Weakness Enumeration

969 weaknesses cataloged by MITRE
CWE describes the underlying weaknesses that lead to vulnerabilities. Every CVE on this site is tagged with its CWE classifications. The CWE Top 25 represents the most dangerous software weaknesses identified by MITRE annually.

Weaknesses

80 shown of 969
The product defines a public method that reads or modifies a private variable.
abstraction Base status Incomplete
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.
abstraction Variant status Incomplete
This entry has been deprecated because it was a duplicate of CWE-774. All content has been transferred to CWE-774.
abstraction Base status Deprecated
The product allocates a reusable resource or group of resources on behalf of an actor without imposing any intended restrictions on the size or number of resources that can be allocated.
abstraction Base status Incomplete
The product does not properly maintain a reference to a resource that has been allocated, which prevents the resource from being reclaimed.
abstraction Base status Incomplete
The product does not release a resource after its effective lifetime has ended, i.e., after the resource is no longer needed.
abstraction Base status Draft
The product does not properly maintain references to a file descriptor or handle, which prevents that file descriptor/handle from being reclaimed.
abstraction Variant status Incomplete
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.
abstraction Variant status Incomplete
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.
abstraction Variant status Incomplete
The product uses XML documents and allows their structure to be defined with a Document Type Definition (DTD), but it does not properly control the number of recursive definitions of entities.
abstraction Base status Draft
The product uses a regular expression to perform neutralization, but the regular expression is not anchored and may allow malicious or malformed data to slip through.
abstraction Variant status Incomplete
When a security-critical event occurs, the product either does not record the event or omits important details about the event when logging it.
abstraction Base status Draft
The product logs too much information, making log files hard to process and possibly hindering recovery efforts or forensic analysis after an attack.
abstraction Base status Draft
The product uses the RSA algorithm but does not incorporate Optimal Asymmetric Encryption Padding (OAEP), which might weaken the encryption.
abstraction Variant status Incomplete
The product defines an IOCTL that uses METHOD_NEITHER for I/O, but it does not validate or incorrectly validates the addresses that are provided.
abstraction Variant status Draft
The product implements an IOCTL with functionality that should be restricted, but it does not properly enforce access control for the IOCTL.
abstraction Variant status Draft
The product uses an expression in which operator precedence causes incorrect logic to be used.
abstraction Base status Draft
The product uses a protection mechanism that relies on the existence or values of a cookie, but it does not properly ensure that the cookie is valid for the associated user.
abstraction Variant status Draft
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.
abstraction Variant status Incomplete
The product reads or writes to a buffer using an index or pointer that references a memory location prior to the beginning of the buffer.
abstraction Base status Incomplete
CWE-787 · top25 #2
The product writes data past the end, or before the beginning, of the intended buffer.
abstraction Base status Draft
The product reads or writes to a buffer using an index or pointer that references a memory location after the end of the buffer.
abstraction Base status Incomplete
The product allocates memory based on an untrusted, large size value, but it does not ensure that the size is within expected limits, allowing arbitrary amounts of memory to be allocated.
abstraction Variant status Draft
The product receives data from an upstream component, but does not filter or incorrectly filters special elements before sending it to a downstream component.
abstraction Class status Incomplete
The product receives data from an upstream component, but does not completely filter special elements before sending it to a downstream component.
abstraction Base status Incomplete
The product receives data from an upstream component, but does not completely filter one or more instances of special elements before sending it to a downstream component.
abstraction Variant status Incomplete
The product receives data from an upstream component, but only filters a single instance of a special element before sending it to a downstream component.
abstraction Variant status Incomplete
The product receives data from an upstream component, but does not filter all instances of a special element before sending it to a downstream component.
abstraction Variant status Incomplete
The product receives data from an upstream component, but only accounts for special elements at a specified location, thereby missing remaining special elements that may exist before sending it to a downstream component.
abstraction Base status Incomplete
The product receives data from an upstream component, but only accounts for special elements positioned relative to a marker (e.g. "at the beginning/end of a string; the second argument"), thereby missing remaining special elements that may exist before sending it to a downstream component.
abstraction Variant status Incomplete
The product receives data from an upstream component, but only accounts for special elements at an absolute position (e.g. "byte number 10"), thereby missing remaining special elements that may exist before sending it to a downstream component.
abstraction Variant status Incomplete
CWE-798 · top25 #22
The product contains hard-coded credentials, such as a password or cryptographic key.
abstraction Base status Draft
The product does not properly limit the number or frequency of interactions that it has with an actor, such as the number of incoming requests.
abstraction Class status Incomplete
The product uses a CAPTCHA challenge, but the challenge can be guessed or automatically recognized by a non-human actor.
abstraction Base status Incomplete
The product uses a sequential operation to read or write a buffer, but it uses an incorrect length value that causes it to access memory that is outside of the bounds of the buffer.
abstraction Base status Incomplete
The product uses the size of a source buffer when reading from or writing to a destination buffer, which may cause it to access memory that is outside of the bounds of the buffer.
abstraction Variant status Incomplete
The product uses a protection mechanism that relies on the existence or values of an input, but the input can be modified by an untrusted actor in a way that bypasses the protection mechanism.
abstraction Base status Incomplete
The product utilizes a shared resource in a concurrent manner but does not attempt to synchronize access to the resource.
abstraction Base status Incomplete
The product utilizes a shared resource in a concurrent manner, but it does not correctly synchronize access to the resource.
abstraction Base status Incomplete
The product obtains a value from an untrusted source, converts this value to a pointer, and dereferences the resulting pointer.
abstraction Base status Incomplete
The product performs pointer arithmetic on a valid pointer, but it uses an offset that can point outside of the intended range of valid memory locations for the resulting pointer.
abstraction Base status Incomplete
The product accesses or uses a pointer that has not been initialized.
abstraction Base status Incomplete
The product dereferences a pointer that contains a location for memory that was previously valid, but is no longer valid.
abstraction Base status Incomplete
The product releases a resource that is still intended to be used by itself or another actor.
abstraction Base status Incomplete
The product does not restrict a reference to a Document Type Definition (DTD) to the intended control sphere. This might allow attackers to reference arbitrary DTDs, possibly causing the product to expose files, consume excessive system resources, or execute arbitrary http requests on behalf of the attacker.
abstraction Variant status Incomplete
The product defines a signal handler that contains code sequences that are not asynchronous-safe, i.e., the functionality is not reentrant, or it can be interrupted.
abstraction Variant status Incomplete
The product imports, requires, or includes executable functionality (such as a library) from a source that is outside of the intended control sphere.
abstraction Base status Incomplete
The product includes web functionality (such as a web widget) from another domain, which causes it to operate within the domain of the product, potentially granting total access and control of the product to the untrusted source.
abstraction Variant status Incomplete
The product defines a function that is used as a handler for more than one signal.
abstraction Variant status Incomplete
The product attempts to unlock a resource that is not locked.
abstraction Base status Incomplete
CWE-833
The product contains multiple threads or executable segments that are waiting for each other to release a necessary lock, resulting in deadlock.
abstraction Base status Incomplete
The product performs an iteration or loop without sufficiently limiting the number of times that the loop is executed.
abstraction Class status Incomplete
The product contains an iteration or loop with an exit condition that cannot be reached, i.e., an infinite loop.
abstraction Base status Incomplete
The product records password hashes in a data store, receives a hash of a password from a client, and compares the supplied hash to the hash obtained from the data store.
abstraction Base status Incomplete
The product requires that an actor should only be able to perform an action once, or to have only one unique action, but the product does not enforce or improperly enforces this restriction.
abstraction Base status Incomplete
The product uses or specifies an encoding when generating output to a downstream component, but the specified encoding is not the same as the encoding that is expected by the downstream component.
abstraction Base status Incomplete
The product checks a value to ensure that it is less than or equal to a maximum, but it does not also verify that the value is greater than or equal to the minimum.
abstraction Base status Incomplete
The product supports a session in which more than one behavior must be performed by an actor, but it does not properly ensure that the actor performs the behaviors in the required sequence.
abstraction Class status Incomplete
The product or the administrator places a user into an incorrect group.
abstraction Base status Incomplete
The product allocates or initializes a resource such as a pointer, object, or variable using one type, but it later accesses that resource using a type that is incompatible with the original type.
abstraction Base status Incomplete
CWE-862 · top25 #9
The product does not perform an authorization check when an actor attempts to access a resource or perform an action.
abstraction Class status Incomplete
CWE-863 · top25 #18
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.
abstraction Class status Incomplete
The product uses or accesses a resource that has not been initialized.
abstraction Base status Incomplete
The product does not initialize a critical resource.
abstraction Class status Incomplete
The product uses or accesses a file descriptor after it has been closed.
abstraction Base status Incomplete
The product uses a reference count to manage a resource, but it does not update or incorrectly updates the reference count.
abstraction Base status Incomplete
The product contains functionality that is not documented, not part of the specification, and not accessible through an interface or command sequence that is obvious to the product's users or administrators.
abstraction Class status Incomplete
The product does not properly restrict reading from or writing to dynamically-managed code resources such as variables, objects, classes, attributes, functions, or executable instructions or statements.
abstraction Class status Incomplete
The product does not properly restrict reading from or writing to dynamically-identified variables.
abstraction Base status Incomplete
The product receives input from an upstream component that specifies multiple attributes, properties, or fields that are to be initialized or updated in an object, but it does not properly control which attributes can be modified.
abstraction Base status Incomplete
The product generates a hash for a password, but it uses a scheme that does not provide a sufficient level of computational effort that would make password cracking attacks infeasible or expensive.
abstraction Base status Incomplete
The product constructs all or part of an expression language (EL) statement in a framework such as a Java Server Page (JSP) using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended EL statement before it is executed.
abstraction Base status Incomplete
CWE-918 · top25 #19
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 request is being sent to the expected destination.
abstraction Base status Incomplete
The product operates in an environment in which power is a limited resource that cannot be automatically replenished, but the product does not properly restrict the amount of power that its operation consumes.
abstraction Base status Incomplete
The product stores sensitive information in a file system or device that does not have built-in access control.
abstraction Base status Incomplete
The product stores sensitive information without properly limiting read or write access by unauthorized actors.
abstraction Class status Incomplete
The product establishes a communication channel to (or from) an endpoint for privileged or protected operations, but it does not properly ensure that it is communicating with the correct endpoint.
abstraction Class status Incomplete
The product establishes a communication channel with an endpoint and receives a message from that endpoint, but it does not sufficiently ensure that the message was not modified during transmission.
abstraction Base status Incomplete
The Android application uses a Broadcast Receiver that receives an Intent but does not properly verify that the Intent came from an authorized source.
abstraction Variant status Incomplete
The Android application exports a component for use by other applications, but does not properly restrict which applications can launch the component or access the data it contains.
abstraction Variant status Incomplete
Showing 641-720 of 969
Vulnerabilities
CISA KEV catalog
CWE weaknesses
CAPEC attack patterns
Package vulnerabilities
Threat intelligence
Threat actors
Tools & malware
ATT&CK techniques
IOCs
Detection & defense
Sigma rules
YARA rules
Atomic Red Team tests
D3FEND countermeasures
Compliance
NIST 800-53
ISO 27001:2022
SOC 2 TSC
PCI-DSS v4.0
CIS Controls v8.1
About
All capabilities
Live statistics
Data sources
Privacy policy
Terms of service
threatengine.sh  ·  Open-source threat intelligence platform  ·  100+ authoritative sources  ·  Every fact traces to its origin