Owasp Top 10 - 2021
Owasp Top 10 - 2021
Introduction
Welcome to the latest installment of the OWASP Top 10! The OWASP Top 10 2021 is all-new, with a
new graphic design and an available one-page infographic you can print or obtain from our home
page.
A huge thank you to everyone that contributed their time and data for this iteration. Without you,
this installment would not happen. THANK YOU!
https://owasp.org/Top10/ 1/8
6/3/25, 11:42 AM OWASP Top 10:2021
A01:2021-Broken Access Control moves up from the fifth position to the category with the
most serious web application security risk; the contributed data indicates that on average,
3.81% of applications tested had one or more Common Weakness Enumerations (CWEs) with
more than 318k occurrences of CWEs in this risk category. The 34 CWEs mapped to Broken
Access Control had more occurrences in applications than any other category.
A03:2021-Injection slides down to the third position. 94% of the applications were tested for
some form of injection with a max incidence rate of 19%, an average incidence rate of 3.37%,
and the 33 CWEs mapped into this category have the second most occurrences in applications
with 274k occurrences. Cross-site Scripting is now part of this category in this edition.
A04:2021-Insecure Design is a new category for 2021, with a focus on risks related to design
flaws. If we genuinely want to "move left" as an industry, we need more threat modeling, secure
design patterns and principles, and reference architectures. An insecure design cannot be
fixed by a perfect implementation as by definition, needed security controls were never created
to defend against specific attacks.
https://owasp.org/Top10/ 2/8
6/3/25, 11:42 AM OWASP Top 10:2021
A08:2021-Software and Data Integrity Failures is a new category for 2021, focusing on
making assumptions related to software updates, critical data, and CI/CD pipelines without
verifying integrity. One of the highest weighted impacts from Common Vulnerability and
Exposures/Common Vulnerability Scoring System (CVE/CVSS) data mapped to the 10 CWEs in
this category. A8:2017-Insecure Deserialization is now a part of this larger category.
A10:2021-Server-Side Request Forgery is added from the Top 10 community survey (#1). The
data shows a relatively low incidence rate with above average testing coverage, along with
above-average ratings for Exploit and Impact potential. This category represents the scenario
where the security community members are telling us this is important, even though it's not
illustrated in the data at this time.
Methodology
This installment of the Top 10 is more data-driven than ever but not blindly data-driven. We
selected eight of the ten categories from contributed data and two categories from the Top 10
community survey at a high level. We do this for a fundamental reason, looking at the contributed
data is looking into the past. AppSec researchers take time to find new vulnerabilities and new
ways to test for them. It takes time to integrate these tests into tools and processes. By the time
we can reliably test a weakness at scale, years have likely passed. To balance that view, we use a
community survey to ask application security and development experts on the front lines what they
see as essential weaknesses that the data may not show yet.
There are a few critical changes that we adopted to continue to mature the Top 10.
https://owasp.org/Top10/ 3/8
6/3/25, 11:42 AM OWASP Top 10:2021
Previous data collection efforts were focused on a prescribed subset of approximately 30 CWEs
with a field asking for additional findings. We learned that organizations would primarily focus on
just those 30 CWEs and rarely add additional CWEs that they saw. In this iteration, we opened it up
and just asked for data, with no restriction on CWEs. We asked for the number of applications
tested for a given year (starting in 2017), and the number of applications with at least one instance
of a CWE found in testing. This format allows us to track how prevalent each CWE is within the
population of applications. We ignore frequency for our purposes; while it may be necessary for
other situations, it only hides the actual prevalence in the application population. Whether an
application has four instances of a CWE or 4,000 instances is not part of the calculation for the
Top 10. We went from approximately 30 CWEs to almost 400 CWEs to analyze in the dataset. We
plan to do additional data analysis as a supplement in the future. This significant increase in the
number of CWEs necessitates changes to how the categories are structured.
We spent several months grouping and categorizing CWEs and could have continued for additional
months. We had to stop at some point. There are both root cause and symptom types of CWEs,
where root cause types are like "Cryptographic Failure" and "Misconfiguration" contrasted to
symptom types like "Sensitive Data Exposure" and "Denial of Service." We decided to focus on the
root cause whenever possible as it's more logical for providing identification and remediation
guidance. Focusing on the root cause over the symptom isn't a new concept; the Top Ten has been
a mix of symptom and root cause. CWEs are also a mix of symptom and root cause; we are simply
being more deliberate about it and calling it out. There is an average of 19.6 CWEs per category in
this installment, with the lower bounds at 1 CWE for A10:2021-Server-Side Request Forgery
(SSRF) to 40 CWEs in A04:2021-Insecure Design. This updated category structure offers
additional training benefits as companies can focus on CWEs that make sense for a
language/framework.
We downloaded OWASP Dependency Check and extracted the CVSS Exploit, and Impact scores
grouped by related CWEs. It took a fair bit of research and effort as all the CVEs have CVSSv2
scores, but there are flaws in CVSSv2 that CVSSv3 should address. After a certain point in time, all
CVEs are assigned a CVSSv3 score as well. Additionally, the scoring ranges and formulas were
updated between CVSSv2 and CVSSv3.
https://owasp.org/Top10/ 4/8
6/3/25, 11:42 AM OWASP Top 10:2021
In CVSSv2, both Exploit and (Technical) Impact could be up to 10.0, but the formula would knock
them down to 60% for Exploit and 40% for Impact. In CVSSv3, the theoretical max was limited to
6.0 for Exploit and 4.0 for Impact. With the weighting considered, the Impact scoring shifted higher,
almost a point and a half on average in CVSSv3, and exploitability moved nearly half a point lower
on average.
There are 125k records of a CVE mapped to a CWE in the National Vulnerability Database (NVD)
data extracted from OWASP Dependency Check, and there are 241 unique CWEs mapped to a CVE.
62k CWE maps have a CVSSv3 score, which is approximately half of the population in the data set.
For the Top Ten 2021, we calculated average exploit and impact scores in the following manner. We
grouped all the CVEs with CVSS scores by CWE and weighted both exploit and impact scored by
the percentage of the population that had CVSSv3 + the remaining population of CVSSv2 scores to
get an overall average. We mapped these averages to the CWEs in the dataset to use as Exploit and
(Technical) Impact scoring for the other half of the risk equation.
Therefore, we only pick eight of ten categories from the data because it's incomplete. The other
two categories are from the Top 10 community survey. It allows the practitioners on the front lines
to vote for what they see as the highest risks that might not be in the data (and may never be
expressed in data).
Tooling and HaT are high-frequency finding generators. Tools will look for specific vulnerabilities
and tirelessly attempt to find every instance of that vulnerability and will generate high finding
counts for some vulnerability types. Look at Cross-Site Scripting, which is typically one of two
flavors: it's either a more minor, isolated mistake or a systemic issue. When it's a systemic issue,
https://owasp.org/Top10/ 5/8
6/3/25, 11:42 AM OWASP Top 10:2021
the finding counts can be in the thousands for a single application. This high frequency drowns out
most other vulnerabilities found in reports or data.
TaH, on the other hand, will find a broader range of vulnerability types but at a much lower
frequency due to time constraints. When humans test an application and see something like Cross-
Site Scripting, they will typically find three or four instances and stop. They can determine a
systemic finding and write it up with a recommendation to fix on an application-wide scale. There
is no need (or time) to find every instance.
Suppose we take these two distinct data sets and try to merge them on frequency. In that case, the
Tooling and HaT data will drown the more accurate (but broad) TaH data and is a good part of why
something like Cross-Site Scripting has been so highly ranked in many lists when the impact is
generally low to moderate. It's because of the sheer volume of findings. (Cross-Site Scripting is
also reasonably easy to test for, so there are many more tests for it as well).
In 2017, we introduced using incidence rate instead to take a fresh look at the data and cleanly
merge Tooling and HaT data with TaH data. The incidence rate asks what percentage of the
application population had at least one instance of a vulnerability type. We don't care if it was one-
off or systemic. That's irrelevant for our purposes; we just need to know how many applications
had at least one instance, which helps provide a clearer view of the testing is findings across
multiple testing types without drowning the data in high-frequency results. This corresponds to a
risk related view as an attacker needs only one instance to attack an application successfully via
the category.
We publish a call for data through social media channels available to us, both project and OWASP.
On the OWASP Project page, we list the data elements and structure we are looking for and how to
submit them. In the GitHub project, we have example files that serve as templates. We work with
organizations as needed to help figure out the structure and mapping to CWEs.
We get data from organizations that are testing vendors by trade, bug bounty vendors, and
organizations that contribute internal testing data. Once we have the data, we load it together and
run a fundamental analysis of what CWEs map to risk categories. There is overlap between some
CWEs, and others are very closely related (ex. Cryptographic vulnerabilities). Any decisions related
to the raw data submitted are documented and published to be open and transparent with how we
normalized the data.
https://owasp.org/Top10/ 6/8
6/3/25, 11:42 AM OWASP Top 10:2021
We look at the eight categories with the highest incidence rates for inclusion in the Top 10. We also
look at the Top 10 community survey results to see which ones may already be present in the data.
The top two votes that aren't already present in the data will be selected for the other two places in
the Top 10. Once all ten were selected, we applied generalized factors for exploitability and impact;
to help rank the Top 10 2021 in a risk based order.
Data Factors
There are data factors that are listed for each of the Top 10 Categories, here is what they mean:
CWEs Mapped: The number of CWEs mapped to a category by the Top 10 team.
Incidence Rate: Incidence rate is the percentage of applications vulnerable to that CWE from
the population tested by that org for that year.
(Testing) Coverage: The percentage of applications tested by all organizations for a given
CWE.
Weighted Exploit: The Exploit sub-score from CVSSv2 and CVSSv3 scores assigned to CVEs
mapped to CWEs, normalized, and placed on a 10pt scale.
Weighted Impact: The Impact sub-score from CVSSv2 and CVSSv3 scores assigned to CVEs
mapped to CWEs, normalized, and placed on a 10pt scale.
Total Occurrences: Total number of applications found to have the CWEs mapped to a
category.
Total CVEs: Total number of CVEs in the NVD DB that were mapped to the CWEs mapped to a
category.
AppSec Labs
Cobalt.io
Contrast Security
GitLab
HackerOne
HCL Technologies
https://owasp.org/Top10/ 7/8
6/3/25, 11:42 AM OWASP Top 10:2021
Micro Focus
PenTest-Tools
Probely
Sqreen
Veracode
WhiteHat (NTT)
https://owasp.org/Top10/ 8/8