Building the 2021 Top Ten Survey
Help build the survey for the 2021 Top Ten
As we're putting together the survey for the next Top Ten so that you can help pick two vulnerability categories or risks for inclusion, we face the challenge of what to include in the survey.
Remember, for the Top 10 2017, we determined as a team that we would pick eight risks from the data submitted and two risks from a survey that would be completed by industry practitioners. We did this as the data will always show us information from the past and is only as good as the testing coverage from the submitting organizations. The hope was that the practitioners in the trenches would help determine a couple of risks that might not show up in the data yet.
What this also means is that the two risks that were selected by survey in 2017 are on the block again this time around when we ask you to pick again. Now, there is the possibility that testing has caught up since the first survey and Deserialization and Insufficient Logging and Monitoring might be able take their place in the data, they might not, that remains to be seen.
---------------------------------------------------------
Below is the history and process for creating this survey, it sums up with a call to action. If you have a CWE that you think should be added to the survey, please open an issue in the Top Ten GitHub Repo with the label " 2021-Survey " and we'll review and possibly add it to the survey: https://github.com/OWASP/Top10/issues/new
---------------------------------------------------------
Here is a little bit of background from last time we did this; some of you remember, some don't, and some were not working in this industry yet.
In 2017, we submitted a survey with the following CWEs
| CWE-799 |
Improper Control of Interaction Frequency (Anti-Automation) |
| CWE-223/778 |
Insufficient Logging and Monitoring |
| CWE-918 |
Server-Side Request Forgery (SSRF) |
| CWE-915 |
Mass Assignment |
| CWE-829 |
Inclusion of Functionality from Untrusted Control Sphere (3rd Party Content) |
| CWE-639 |
Authorization Bypass Through User-Controlled Key (IDOR & Path Traversal) |
| CWE-611 |
Improper Restriction of XML External Entity Reference ('XXE') |
| CWE-601 |
Unvalidated Forward and Redirects |
| CWE-502 |
Deserialization of Untrusted Data |
| CWE-451 |
User Interface (UI) Misrepresentation of Critical Information (Clickjacking and others) |
| CWE-400 |
Application Denial of Service |
| CWE-359 |
Exposure of Private Information ('Privacy Violation') |
| CWE-310/311/312/326/327 |
Cryptographic Failures |
We asked everyone to rank their top four choices (1-4), then scored them to see what you all felt where the most important. We had 550 responses to the survey. The end results looked like this:
| Rank |
Vulnerability Categories |
Score |
| 1 |
Exposure of Private Information ('Privacy Violation') [CWE-359] |
748 |
| 2 |
Cryptographic Failures [CWE-310/311/312/326/327] |
584 |
| 3 |
Deserialization of Untrusted Data [CWE-502] |
514 |
| 4 |
Authorization Bypass Through User-Controlled Key (IDOR & Path Traversal) [CWE-639] |
493 |
| 5 |
Insufficient Logging and Monitoring [CWE-223 / CWE-778] |
440 |
| 6 |
Server-Side Request Forgery (SSRF) [CWE-918] |
390 |
| 7 |
Inclusion of Functionality from Untrusted Control Sphere (3rd Party Content) [CWE-829] |
351 |
| 8 |
Improper Restriction of XML External Entity Reference ('XXE') [CWE-611] |
300 |
| 9 |
Application Denial of Service [CWE-400] |
292 |
| 10 |
Unvalidated Forward and Redirects [CWE-601] |
252 |
| 11 |
User Interface (UI) Misrepresentation of Critical Information (Clickjacking and others) [CWE-451] |
174 |
| 12 |
Improper Control of Interaction Frequency (Anti-Automation) [CWE-799] |
126 |
| 13 | Mass Assignment [CWE-915] |
76 |
After reviewing which categories would already be covered by data, the end result were the additions of
-A8-2017 Insecure Deserialization
-A10-2017 Insufficient Logging and Monitoring
Especially A10 would be unlikely to show up in the data set as that CWE is rarely reported by the assessment testing at the time and is fairly difficult to find in an automated fashion. But that's why we have this survey to add to the data collection, because the data can't tell us everything we need to know.
Also in the 2017 survey, we asked respondents to tell us what they think might need to be included in the next Top Ten.
These are the summarized results:
From 2017 Survey
- Session Fixation – (Already in Top 10 2017)
- CORS Misconfiguration - (Already in Top 10 2017)
- Architecture/Design Issues
- Components with known Vulns - (Already in Top 10 2017)
- Private Data Exposure - (Already in Top 10 2017)
- Logic flaws
- Template Injection
- RCE through XSS in RPC
- Attacks against template engines
- EL/OGNL/etc injections
- Cloud Configuration Failures - (Already in Top 10 2017)
- SubDomain Takeovers
- Missing business logic validation
- API AuthN/AuthZ – (API Top 10 2019)
- Logic flow bypass
- Protecting sensitive pages from automation
- Malicious File Upload
- Slow/lack of process to update apps
- Web Cache Deception
- API related weaknesses – (API Top 10 2019)
- Privacy Related - (Already in Top 10 2017)
- SSRF
- OAuth token vulns (clientside heavy Auth)
- Excessive 3rd party JS live inclusion
Though I'm pretty sure the best answer was: "One does not simply predict TOP 10 of vulnerability categories for three years ahead."
Now that we have covered the history, time to move forward to the here and now.
As we look to what may be in the next survey, there are considerations to take into account. We can look at the CWE Top 25 published by Mitre.
https://cwe.mitre.org/top25/archive/2020/2020_cwe_top25.html
Rank ID-Name
[1] CWE-79 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
[2] CWE-787 Out-of-bounds Write
[3] CWE-20 Improper Input Validation
[4] CWE-125 Out-of-bounds Read
[5] CWE-119 Improper Restriction of Operations within the Bounds of a Memory Buffer
[6] CWE-89 Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
[7] CWE-200 Exposure of Sensitive Information to an Unauthorized Actor
[8] CWE-416 Use After Free
[9] CWE-352 Cross-Site Request Forgery (CSRF)
[10] CWE-78 Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')
[11] CWE-190 Integer Overflow or Wraparound
[12] CWE-22 Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
[13] CWE-476 NULL Pointer Dereference
[14] CWE-287 Improper Authentication
[15] CWE-434 Unrestricted Upload of File with Dangerous Type
[16] CWE-732 Incorrect Permission Assignment for Critical Resource
[17] CWE-94 Improper Control of Generation of Code ('Code Injection')
[18] CWE-522 Insufficiently Protected Credentials
[19] CWE-611 Improper Restriction of XML External Entity Reference
[20] CWE-798 Use of Hard-coded Credentials
[21] CWE-502 Deserialization of Untrusted Data
[22] CWE-269 Improper Privilege Management
[23] CWE-400 Uncontrolled Resource Consumption
[24] CWE-306 Missing Authentication for Critical Function
[25] CWE-862 Missing Authorization
For a number of reasons, I disagree with this list; but that’s not the point. I’m trying to find CWEs that may exist, but aren’t really easily testable or are new enough that there aren’t many tests so I can add them to the survey to see if other in the industry think they have risen to that level of importance.
My goal for CWEs on the survey are to list CWEs that contain one or more of the following:
- Hard to test: these are risk that are real, but unlikely to be exhibited in the data
- Emerging risks: these are newer that there isn’t good testing coverage yet (usually at least a couple year lag)
- TBD?
With those goals in mind, here is the draft of the Top 10 2021 Survey for feedback:
| # |
CWE |
Note |
| 1 |
Insufficient Logging and Monitoring [CWE-223/778] |
Current Top 10, important, and hard to test for. |
| 2 |
Server-Side Request Forgery (SSRF) [CWE-918] |
Might be in the data this cycle, wasn’t last; but was hot in 2017-2018 |
| 3 |
Mass Assignment [CWE-915] |
From 2017 Survey |
| 4 |
Inclusion of Functionality from Untrusted Control Sphere (3rd Party Content) [CWE-829] |
With the increased dynamic integration of web content, this is ever growing; but may not really be tested for. |
| 5 |
Unvalidated Forward and Redirects [CWE-601] |
From 2017 Survey and additional risks to consider |
| 6 |
Improper Control of Interaction Frequency (Anti-Automation) [CWE-799] |
From 2017 Survey and additional risks to consider |
| 7 |
Improper Restriction of Operations within the Bounds of a Memory Buffer [CWE-119] |
From CWE Top 25 2020 and parent of CWE-125/CWE-787 aka Buffer Overflow and related |
| 8 |
Unrestricted Upload of File with Dangerous Type [CWE-434] |
In CWE Top 25 2020 and additional risks to consider 2017 |
| 9 |
Cross-Site Request Forgery (CSRF) [CWE-352] |
Former Top 10 and in additional risks to consider 2017 |
| 10 |
Excessive Attack Surface [CWE-1125] |
Testing the water for branching into a little more architecture/design related |
| 11 |
Use of Unmaintained Third Party Components [CWE-1104] |
Finally have an official CWE for this one |
| 12 |
Inconsistency Between Implementation and Documented Design [CWE-1068] |
Should we consider some more architectural risks? Incomplete Design Documentation [CWE-1110] and Missing Documentation for Design [1053] |
| 13 |
Deserialization of Untrusted Data [CWE-502] |
Current Top 10, didn’t seem to have a lot of testing |
| 14 |
Unprotected Storage of Credentials [CWE-256] |
It might be in the data, but may also be a hot enough topic to stand on its own. |
There is nothing for API specific as we have an OWASP Top 10 API 2019 already and I don’t see a need to duplicate any of that work. Similarly, we have IoT and Mobile Top 10s, so no need to go there either.
I plan to use a similar format for the survey with some base demographic information and having people pick their top four.
This worked well last time and allows for a good understanding of priorities from a varied audience.
If you have a CWE that you think should be added to the survey, please open an issue in the Top Ten GitHub Repo with the label " 2021-Survey " and we'll review and possibly add it to the survey: https://github.com/OWASP/Top10/issues/new




