National Vulnerability Database

National Vulnerability Database

National Vulnerability
Database

NVD CWE Slice

Click to see the entire CWE Tree Visualization.The Common Weakness Enumeration Specification (CWE) provides a common language of discourse for discussing, finding and dealing with the causes of software security vulnerabilities as they are found in code, design, or system architecture. Each individual CWE represents a single vulnerability type. CWE is currently maintained by the MITRE Corporation with support from the National Cyber Security Division (DHS). A detailed CWE list is currently available at the MITRE website; this list provides a detailed definition for each individual CWE.

All individual CWEs are held within a hierarchical structure that allows for multiple levels of abstraction. CWEs located at higher levels of the structure (i.e. Configuration) provide a broad overview of a vulnerability type and can have many children CWEs associated with them. CWEs at deeper levels in the structure (i.e. Cross Site Scripting) provide a finer granularity and usually have fewer or no children CWEs. The image to the right represents a portion of the overall CWE structure, the red boxes represent the CWEs being used by NVD (click to enlarge).

NVD integrates CWE into the scoring of CVE vulnerabilities by providing a cross section of the overall CWE structure. NVD analysts score CVEs using CWEs from different levels of the hierarchical structure. This cross section of CWEs allows analysts to score CVEs at both a fine and coarse granularity, which is necessary due to the varying levels of specificity possessed by different CVEs. The cross section of CWEs used by NVD is listed below; each CWE listed links to a detailed description hosted by MITRE. For a better understanding of how the standards link together please visit: MITRE - Making Security Measurable

CWE is not currently part of the Security Content Automation Protocol (SCAP). NVD is using CWE as a classification mechanism that differentiates CVEs by the type of vulnerability they represent.

Related Activities


Name CWE-ID Description
CWE-824 Access of Uninitialized Pointer The program accesses or uses a pointer that has not been initialized.
CWE-407 Algorithmic Complexity An algorithm in a product has an inefficient worst-case computational complexity that may be detrimental to system performance and can be triggered by an attacker, typically using crafted manipulations that ensure that the worst case is being reached.
CWE-774 Allocation of File Descriptors or Handles Without Limits or Throttling The software 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.
CWE-88 Argument Injection or Modification The software does not sufficiently delimit the arguments being passed to a component in another control sphere, allowing alternate arguments to be provided, leading to potentially security-relevant changes.
CWE-405 Asymmetric Resource Consumption (Amplification) Software that does not appropriately monitor or control resource consumption can lead to adverse system performance.
CWE-287 Authentication Issues When an actor claims to have a given identity, the software does not prove or insufficiently proves that the claim is correct.
CWE-119 Buffer Errors The software 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.
CWE-417 Channel and Path Errors Weaknesses in this category are related to improper handling of communication channels and access paths.
CWE-171 Cleansing, Canonicalization, and Comparison Errors Weaknesses in this category are related to improper handling of data within protection mechanisms that attempt to perform neutralization for untrusted data.
CWE-17 Code Weaknesses in this category are typically introduced during code development, including specification, design, and implementation.
CWE-94 Code Injection The software constructs all or part of a code segment using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the syntax or behavior of the intended code segment.
CWE-77 Command Injection The software 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.
CWE-16 Configuration Weaknesses in this category are typically introduced during the configuration of the software.
CWE-216 Containment Errors (Container Errors) This tries to cover various problems in which improper data are included within a "container."
CWE-255 Credentials Management Weaknesses in this category are related to the management of credentials.
CWE-352 Cross-Site Request Forgery (CSRF) 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 request.
CWE-79 Cross-Site Scripting (XSS) The software 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.
CWE-310 Cryptographic Issues Weaknesses in this category are related to the use of cryptography.
CWE-19 Data Handling Weaknesses in this category are typically found in functionality that processes data.
CWE-502 Deserialization of Untrusted Data The application deserializes untrusted data without sufficiently verifying that the resulting data will be valid.
CWE-369 Divide By Zero The product divides a value by zero.
CWE-415 Double Free The product calls free() twice on the same memory address, potentially leading to modification of unexpected memory locations.
CWE-172 Encoding Error The software does not properly encode or decode the data, resulting in unexpected values.
CWE-2 Environment Weaknesses in this category are typically introduced during unexpected environmental conditions.
CWE-388 Error Handling This category includes weaknesses that occur when an application does not properly handle errors that occur during processing.
CWE-749 Exposed Dangerous Method or Function The software provides an Applications Programming Interface (API) or similar interface for interaction with external actors, but the interface includes a dangerous method or function that is not properly restricted.
CWE-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.
CWE-472 External Control of Assumed-Immutable Web Parameter The web application does not sufficiently verify inputs that are assumed to be immutable but are actually externally controllable, such as hidden form fields.
CWE-642 External Control of Critical State Data The software stores security-critical state information about its users, or the software itself, in a location that is accessible to unauthorized actors.
CWE-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.
CWE-538 File and Directory Information Exposure The product stores sensitive information in files or directories that are accessible to actors outside of the intended control sphere.
CWE-769 File Descriptor Exhaustion The software can be influenced by an attacker to open more files than are supported by the system.
CWE-552 Files or Directories Accessible to External Parties Files or directories are accessible in the environment that should not be.
CWE-134 Format String Vulnerability The software uses externally-controlled format strings in printf-style functions, which can lead to buffer overflows or data representation problems.
CWE-284 Improper Access Control The software does not restrict or incorrectly restricts access to a resource from an unauthorized actor.
CWE-118 Improper Access of Indexable Resource ('Range Error') The software 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.
CWE-285 Improper Authorization The software does not perform or incorrectly performs an authorization check when an actor attempts to access a resource or perform an action.
CWE-295 Improper Certificate Validation The software does not validate, or incorrectly validates, a certificate.
CWE-754 Improper Check for Unusual or Exceptional Conditions The software does not check or improperly checks for unusual or exceptional conditions that are not expected to occur frequently during day to day operation of the software.
CWE-664 Improper Control of a Resource Through its Lifetime The software does not maintain or incorrectly maintains control over a resource throughout its lifetime of creation, use, and release.
CWE-913 Improper Control of Dynamically-Managed Code Resources The software 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.
CWE-99 Improper Control of Resource Identifiers ('Resource Injection') The software 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.
CWE-116 Improper Encoding or Escaping of Output The software prepares a structured message for communication with another component, but encoding or escaping of the data is either missing or done incorrectly. As a result, the intended structure of the message is not preserved.
CWE-665 Improper Initialization The software does not initialize or incorrectly initializes a resource, which might leave the resource in an unexpected state when it is accessed or used.
CWE-93 Improper Neutralization of CRLF Sequences ('CRLF Injection') The software 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.
CWE-113 Improper Neutralization of CRLF Sequences in HTTP Headers ('HTTP Response Splitting') The software receives data from an upstream component, but does not neutralize or incorrectly neutralizes CR and LF characters before the data is included in outgoing HTTP headers.
CWE-943 Improper Neutralization of Special Elements in Data Query Logic
CWE-90 Improper Neutralization of Special Elements used in an LDAP Query ('LDAP Injection') The software 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.
CWE-404 Improper Resource Shutdown or Release The program does not release or incorrectly releases a resource before it is made available for re-use.
CWE-611 Improper Restriction of XML External Entity Reference ('XXE') The software 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.
CWE-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.
CWE-297 Improper Validation of Certificate with Host Mismatch The software communicates with a host that provides a certificate, but the software does not properly ensure that the certificate is actually associated with that host.
CWE-347 Improper Verification of Cryptographic Signature The software does not verify, or incorrectly verifies, the cryptographic signature for data.
CWE-358 Improperly Implemented Security Check for Standard The software does not implement or incorrectly implements one or more security-relevant checks as specified by the design of a standardized algorithm, protocol, or technique.
CWE-326 Inadequate Encryption Strength The software stores or transmits sensitive data using an encryption scheme that is theoretically sound, but is not strong enough for the level of protection required.
CWE-184 Incomplete Blacklist An application uses a "blacklist" of prohibited values, but the blacklist is incomplete.
CWE-444 Inconsistent Interpretation of HTTP Requests ('HTTP Request Smuggling') When malformed or abnormal HTTP requests are interpreted by one or more entities in the data flow between the user and the web server, such as a proxy or firewall, they can be interpreted inconsistently, allowing the attacker to "smuggle" a request to one device without the other device being aware of it.
CWE-682 Incorrect Calculation The software performs a calculation that generates incorrect or unintended results that are later used in security-critical decisions or resource management.
CWE-185 Incorrect Regular Expression The software specifies a regular expression in a way that causes data to be improperly matched or compared.
CWE-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.
CWE-704 Incorrect Type Conversion or Cast The software does not correctly convert an object, resource or structure from one type to a different type.
CWE-398 Indicator of Poor Code Quality The code has features that do not directly introduce a weakness or vulnerability, but indicate that the product has not been carefully developed or maintained.
CWE-534 Information Exposure Through Debug Log Files The application does not sufficiently restrict access to a log file that is used for debugging.
CWE-532 Information Exposure Through Log Files Information written to log files can be of a sensitive nature and give valuable guidance to an attacker or expose sensitive user information.
CWE-200 Information Leak / Disclosure An information exposure is the intentional or unintentional disclosure of information to an actor that is not explicitly authorized to have access to that information.
CWE-199 Information Management Errors Weaknesses in this category are related to improper handling of sensitive information.
CWE-74 Injection The software 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.
CWE-20 Input Validation The product does not validate or incorrectly validates input that can affect the control flow or data flow of a program.
CWE-485 Insufficient Encapsulation The product does not sufficiently encapsulate critical data or functionality.
CWE-331 Insufficient Entropy The software uses an algorithm or scheme that produces insufficient entropy, leaving patterns or clusters of values that are more likely to occur than others.
CWE-332 Insufficient Entropy in PRNG The lack of entropy available for, or used by, a Pseudo-Random Number Generator (PRNG) can be a stability and security threat.
NVD-CWE-noinfo Insufficient Information There is insufficient information about the issue to classify it; details are unkown or unspecified.
CWE-613 Insufficient Session Expiration According to WASC, "Insufficient Session Expiration is when a web site permits an attacker to reuse old session credentials or session IDs for authorization."
CWE-345 Insufficient Verification of Data Authenticity The software does not sufficiently verify the origin or authenticity of data, in a way that causes it to accept invalid data.
CWE-190 Integer Overflow or Wraparound The software 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 can introduce other weaknesses when the calculation is used for resource management or execution control.
CWE-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.
CWE-435 Interaction Error An interaction error occurs when two entities work correctly when running independently, but they interact in unexpected ways when they are run together.
CWE-436 Interpretation Conflict Product A handles inputs or steps differently than Product B, which causes A to perform incorrect actions based on its perception of B's state.
CWE-320 Key Management Errors Weaknesses in this category are related to errors in the management of cryptographic keys.
CWE-59 Link Following The software 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.
CWE-1 Location Weaknesses in this category are organized based on which phase they are introduced during the software development and deployment process.
CWE-306 Missing Authentication for Critical Function The software does not perform any authentication for functionality that requires a provable user identity or consumes a significant amount of resources.
CWE-775 Missing Release of File Descriptor or Handle after Effective Lifetime The software 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.
CWE-471 Modification of Assumed-Immutable Data (MAID) The software does not properly protect an assumed-immutable element from being modified by an attacker.
CWE-476 NULL Pointer Dereference 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.
CWE-189 Numeric Errors Weaknesses in this category are related to improper calculation or conversion of numbers.
CWE-346 Origin Validation Error The software does not properly verify that the source of data or communication is valid.
CWE-78 OS Command Injections The software 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.
NVD-CWE-Other Other NVD is only using a subset of CWE for mapping instead of the entire CWE, and the weakness type is not covered by that subset.
CWE-125 Out-of-bounds Read The software reads data past the end, or before the beginning, of the intended buffer.
CWE-787 Out-of-bounds Write The software writes data past the end, or before the beginning, of the intended buffer.
CWE-21 Path Equivalence Weaknesses in this category can be used to access files outside of a restricted directory (path traversal) or to perform operations on files that would otherwise be restricted (path equivalence).
CWE-22 Path Traversal The software 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 software 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.
CWE-275 Permission Issues Weaknesses in this category are related to improper assignment or handling of permissions.
CWE-264 Permissions, Privileges, and Access Control Weaknesses in this category are related to the management of permissions, privileges, and other security features that are used to perform access control.
CWE-693 Protection Mechanism Failure The product does not use or incorrectly uses a protection mechanism that provides sufficient defense against directed attacks against the product.
CWE-362 Race Conditions The program 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 timing window exists in which the shared resource can be modified by another code sequence that is operating concurrently.
CWE-137 Representation Errors Weaknesses in this category are introduced when inserting or converting data from one representation into another.
CWE-399 Resource Management Errors Weaknesses in this category are related to improper management of system resources.
CWE-254 Security Features Software security is not security software. Here we're concerned with topics like authentication, access control, confidentiality, cryptography, and privilege management.
CWE-220 Sensitive Data Under FTP Root The application stores sensitive data under the FTP document root with insufficient access control, which might make it accessible to untrusted parties.
CWE-918 Server-Side Request Forgery (SSRF) 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.
CWE-384 Session Fixation Authenticating a user, or otherwise establishing a new user session, without invalidating any existing session identifier gives an attacker the opportunity to steal authenticated sessions.
CWE-18 Source Code Weaknesses in this category are typically found within source code.
CWE-89 SQL Injection The software 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.
CWE-371 State Issues Weaknesses in this category are related to improper management of system state.
CWE-361 Time and State Weaknesses in this category are related to the improper management of time and state in an environment that supports simultaneous or near-simultaneous computation by multiple systems, processes, or threads.
CWE-400 Uncontrolled Resource Consumption ('Resource Exhaustion') The software does not properly restrict the size or amount of resources that are requested or influenced by an actor, which can be used to consume more resources than intended.
CWE-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.
CWE-441 Unintended Proxy or Intermediary ('Confused Deputy') The software receives a request, message, or directive from an upstream component, but the software does not sufficiently preserve the original source of the request before forwarding the request to an external actor that is outside of the software's control sphere. This causes the software to appear to be the source of the request, leading it to act as a proxy or other intermediary between the upstream component and the external actor.
CWE-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.
CWE-434 Unrestricted Upload of File with Dangerous Type The software allows the attacker to upload or transfer files of dangerous types that can be automatically processed within the product's environment.
CWE-426 Untrusted Search Path The application searches for critical resources using an externally-supplied search path that can point to resources that are not under the application's direct control.
CWE-601 URL Redirection to Untrusted Site ('Open Redirect') A web application accepts a user-controlled input that specifies a link to an external site, and uses that link in a Redirect. This simplifies phishing attacks.
CWE-416 Use After Free Referencing memory after it has been freed can cause a program to crash, use unexpected values, or execute code.
CWE-327 Use of a Broken or Risky Cryptographic Algorithm The use of a broken or risky cryptographic algorithm is an unnecessary risk that may result in the exposure of sensitive information.
CWE-338 Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG) The product uses a Pseudo-Random Number Generator (PRNG) in a security context, but the PRNG is not cryptographically strong.
CWE-798 Use of Hard-coded Credentials The software contains hard-coded credentials, such as a password or cryptographic key, which it uses for its own inbound authentication, outbound communication to external components, or encryption of internal data.
CWE-330 Use of Insufficiently Random Values The software may use insufficiently random numbers or values in a security context that depends on unpredictable numbers.
CWE-694 Use of Multiple Resources with Duplicate Identifier The software uses multiple resources that can have the same identifier, in a context in which unique identifiers are required.
CWE-640 Weak Password Recovery Mechanism for Forgotten Password The software contains a mechanism for users to recover or change their passwords without knowing the original password, but the mechanism is weak.
CWE-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.
CWE-91 XML Injection (aka Blind XPath Injection) The software 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.