2021 CWE Top 25 Most Dangerous Software Weaknesses
Page Visited: 16557
Read Time:9 Minute, 12 Second

Introduction:

The 2021 CWE Top 25 Most Dangerous Software Weaknesses is a demonstrative list of most periodic and critical errors that can lead to major software vulnerabilities. It is developed by the MITRE Corporation with the support of National Institute of Standards and Technology (NIST) National Vulnerability Database (NVD) for the CVE data and CVSS scores associated with each CVE record.

It includes 25 entries with 15 additional weaknesses also released which are scored just outside the final list. 

These vulnerabilities can be found in software design, architecture and programming. With these weaknesses, a cyber attacker can exploit and take control of the affected system, steal confidential data and also prevent an application from working.

Must Read | What is CWE? | Criteria for the CWE Compatibility | What is CWSS? | Click Here -> CWE – Common Weakness Enumeration – A Database of Software & Hardware Weaknesses 

Objective:

The list was released with the purpose of raising security awareness of common software weaknesses and preventing security issues at the source by guiding programmers and designers to implement these precautions in the software development lifecycle.

This 2021 CWE Top 25 will be helpful for programmers, test engineers and cyber security professionals to analyze the progress in their attempts to secure their software application.

2021 CWE Top 25 Most Dangerous Software Weaknesses List:

Below is the detailed list of the weaknesses in the 2021 CWE Most Dangerous Software Weaknesses listed in numerical order by CWE identifier.

  1. CWE-787 – Out-of-bounds Write
  2. CWE-79 – Improper Neutralization of Input During Web Page Generation (‘Cross-site Scripting’)
  3. CWE-125 – Out-of-bounds Read
  4. CWE-20 – Improper Input Validation
  5. CWE-78 – Improper Neutralization of Special Elements used in an OS Command (‘OS Command Injection’)
  6. CWE-89 – Improper Neutralization of Special Elements used in an SQL Command (‘SQL Injection’)
  7. CWE-416 – Use After Free
  8. CWE-22 – Improper Limitation of a Pathname to a Restricted Directory (‘Path Traversal’)
  9. CWE-352 – Cross-Site Request Forgery (CSRF)
  10. CWE-434 – Unrestricted Upload of File with Dangerous Type
  11. CWE-306 – Missing Authentication for Critical Function
  12. CWE-190 – Integer Overflow or Wraparound
  13. CWE-502 – Deserialization of Untrusted Data
  14. CWE-287 – Improper Authentication
  15. CWE-476 – NULL Pointer Dereference
  16. CWE-798 – Use of Hard-coded Credentials
  17. CWE-119 – Improper Restriction of Operations within the Bounds of a Memory Buffer
  18. CWE-862 – Missing Authorization
  19. CWE-276 – Incorrect Default Permissions
  20. CWE-200 – Exposure of Sensitive Information to an Unauthorized Actor
  21. CWE-522 – Insufficiently Protected Credentials
  22. CWE-732 – Incorrect Permission Assignment for Critical Resource
  23. CWE-611 – Improper Restriction of XML External Entity Reference
  24. CWE-918 – Server-Side Request Forgery (SSRF)
  25. CWE-77 – Improper Neutralization of Special Elements used in a Command (‘Command Injection’)

Methodology used to Determine CWE Software Weaknesses 2021 List: 

2021 CWE Top 25 Software Weaknesses is created by utilizing published vulnerability data from the National Vulnerability Database (NVD). This NVD acquires vulnerability data from CVE and enhanced it with analysis and information and also CVSS score, a numerical scoring system indicating the severity of an information security vulnerability.

To know more about How CVSS Scoring & Ratings are Calculated? | How CVSS Metrics are Categorized | Click Here -> CVSS Scoring – A Vulnerability Metrics 

Raw data consisting of approximately 32,500 CVEs associated with weakness is leveraged from NVD data with CVE IDs from the years 2019 and 2020.

The scoring method is utilized for the calculation to rank the order of weaknesses and applied to the findings. This resulted in ranked order of the selected entries and scored highest 25 entries. The highest 25 becomes the 2021 CWE Top Dangerous Software Weaknesses List and additional 15 entries as Software Weaknesses on the Cusp.

Detail Explanation of the 2021 CWE Top 25 Most Dangerous Software Weaknesses List: 

1)  CWE-787 – Out-of-bounds Write:

The software writes data past the end, or before the beginning, of the intended buffer. Typically, this can result in corruption of data, a crash, or code execution.

2) CWE-79 – Improper Neutralization of Input During Web Page Generation (‘Cross-site Scripting’):

The software does not neutralize or incorrectly neutralize user-controllable input before it is placed in output that is used as a web page that is served to other users.

3) CWE-125 – Out-of-bounds Read: 

The software reads data past the end, or before the beginning, of the intended buffer. Typically, this can allow attackers to read sensitive information from other memory locations or cause a crash.

4) CWE-20 – Improper Input Validation:

The product receives input or data, but it does not validate or incorrectly validate that the input has the properties that are required to process the data safely and correctly. When software does not validate input properly, an attacker is able to craft the input in a form that is not expected by the rest of the application. This will lead to parts of the system receiving unintended input, which may result in altered control flow, arbitrary control of a resource, or arbitrary code execution.

5) CWE-78 – Improper Neutralization of Special Elements used in an OS Command (‘OS Command Injection’): 

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 neutralize special elements that could modify the intended OS command when it is sent to a downstream component. This could allow attackers to execute unexpected, dangerous commands directly on the operating system.

6) CWE-89 – Improper Neutralization of Special Elements used in an SQL Command (‘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 neutralize special elements that could modify the intended SQL command when it is sent to a downstream component.

7) CWE-416 – Use After Free:

Referencing memory after it has been freed can cause a program to crash, use unexpected values, or execute code.

8) CWE-22 – Improper Limitation of a Pathname to a Restricted Directory (‘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.

9) 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.

10) 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.

11) 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.

12) 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.

13)  CWE-502 – Deserialization of Untrusted Data:

The application deserializes untrusted data without sufficiently verifying that the resulting data will be valid.

14) CWE-287 – Improper Authentication:

When an actor claims to have a given identity, the software does not prove or insufficiently prove that the claim is correct.

15) 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.

16) 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.

17) CWE-119 – Improper Restriction of Operations within the Bounds of a Memory Buffer: 

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.

18) CWE-862 – Missing Authorization: 

The software does not perform an authorization check when an actor attempts to access a resource or perform an action.

19) CWE-276 – Incorrect Default Permissions:

During installation, installed file permissions are set to allow anyone to modify those files.

20) CWE-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.

21) CWE-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.

22) CWE-732 – Incorrect Permission Assignment for Critical Resource: 

The product specifies permissions for a security-critical resource in a way that allows that resource to be read or modified by unintended actors.

23) CWE-611 – Improper Restriction of XML External Entity Reference: 

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.

24) 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.

25) CWE-918 – CWE-77 – Improper Neutralization of Special Elements used in a Command (‘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 neutralize special elements that could modify the intended command when it is sent to a downstream component.

Software Weaknesses on the Cusp: 

CWE also shared additional 15 other software weaknesses that just scored outside of the final list of 2021 CWE Most Dangerous Software Weaknesses.

  1. CWE-295 – Improper Certificate Validation
  2. CWE-400 – Uncontrolled Resource Consumption
  3. CWE-94 – Improper Control of Generation of Code (‘Code Injection’)
  4. CWE-269 – Improper Privilege Management
  5. CWE-917 – Improper Neutralization of Special Elements used in an Expression Language Statement (‘Expression Language Injection’)
  6. CWE-59 – Improper Link Resolution Before File Access (‘Link Following’)
  7. CWE-401 – Missing Release of Memory after Effective Lifetime
  8. CWE-362 – Concurrent Execution using Shared Resource with Improper Synchronization (‘Race Condition’)
  9. CWE-427 – Uncontrolled Search Path Element
  10. CWE-319 – Cleartext Transmission of Sensitive Information
  11. CWE-843 – Access of Resource Using Incompatible Type (‘Type Confusion’)
  12. CWE-601 – URL Redirection to Untrusted Site (‘Open Redirect’)
  13. CWE-863 – Incorrect Authorization
  14. CWE-532 – Insertion of Sensitive Information into Log File
  15. CWE-770 – Allocation of Resources Without Limits or Throttling

Here is the report published on the official CWE website: CWE – 2021 CWE Top 25 Most Dangerous Software Weaknesses 

Must Read | What is CVE? | What is CVE Numbering Authority (CNA)? | Criteria for CVE Calculation | Click Here -> CVE: Common Vulnerabilities & Exposures – A Database of Vulnerabilities 

Found this article interesting? Follow DefenseLead on Twitter, Facebook and LinkedIn to read more exclusive content.

Leave a Reply