The OWASP Top 10 (2025): What Changed and How to Test for It

The OWASP Top 10:2025 ranking explained — what moved, the two new categories, and how to continuously test each risk in modern apps and APIs.

Priya Natarajan· Application Security Lead· Updated July 20, 202613 min read
Guides & TutorialsRedStrike

TL;DR

The OWASP Top 10:2025 keeps Broken Access Control at #1 and adds two brand-new categories: Software Supply Chain Failures (A03) and Mishandling of Exceptional Conditions (A10). Security Misconfiguration jumps to #2, SSRF was consolidated into A01, and Insecure Design slipped to #6. The list spans 248 CWEs drawn from data on over 2.8 million applications. The practical lesson: risk increasingly lives in how components, pipelines, and identities are composed — so test continuously, map every finding to a category, and verify exploitability before you page anyone.

What is the OWASP Top 10 and why does it matter?

The OWASP Top 10 is the industry-standard awareness document ranking the most critical web application security risks, and the 2025 edition is the first major revision since 2021. Auditors reference it, security teams scope pentests around it, and engineering leaders use it to prioritize AppSec investment. Getting comfortable with the 2025 revision is the fastest way to align testing with what actually gets exploited today rather than what was common half a decade ago.

The 2025 list was built from a hybrid methodology: eight categories were selected directly from contributed testing data covering more than 2.8 million applications, and two were promoted via the OWASP community survey to capture emerging risks that automated tooling has not yet caught up to. In total, the list maps 248 CWEs across the ten categories — an average of roughly 25 weaknesses per category. That data-plus-expert-judgment blend is why the Top 10 remains a credible baseline rather than a popularity contest.

What changed in the OWASP Top 10 2025 edition?

The biggest changes in 2025 are two new categories — Software Supply Chain Failures (A03) and Mishandling of Exceptional Conditions (A10) — plus Security Misconfiguration climbing to #2 and SSRF being folded into Broken Access Control. If you learned the 2021 list, several of your mental shortcuts are now out of date. Here is the corrected mapping from 2021 to 2025.

2025 rankCategory2021 rankDirection
A01:2025Broken Access ControlA01Steady (#1)
A02:2025Security MisconfigurationA05Up
A03:2025Software Supply Chain FailuresA06 (expanded)New / expanded
A04:2025Cryptographic FailuresA02Down
A05:2025InjectionA03Down
A06:2025Insecure DesignA04Down
A07:2025Authentication FailuresA07Steady (renamed)
A08:2025Software or Data Integrity FailuresA08Steady
A09:2025Security Logging and Alerting FailuresA09Steady (renamed)
A10:2025Mishandling of Exceptional ConditionsNew

A few reclassifications deserve emphasis, because they invalidate common assumptions:

  • SSRF is no longer a standalone category. In 2021, Server-Side Request Forgery ranked #10 on its own. In 2025 it was consolidated into A01: Broken Access Control as a notable weakness (CWE-918), reflecting that SSRF is fundamentally an authorization failure over outbound requests.
  • Software Supply Chain Failures (A03) is not simply "Vulnerable and Outdated Components" renamed. It expands the old A06:2021 to cover the whole ecosystem — dependencies, build systems, CI/CD, artifact registries, and distribution channels — and it debuts at #3.
  • Insecure Design went down, not up. It ranked #4 in 2021 and now sits at #6. Any claim that it climbed to the top of the list is incorrect.
  • Two categories were renamed: A07 dropped "Identification and" to become simply Authentication Failures, and A09 changed "Monitoring" to Alerting to stress that detection without a triggered response is not detection at all.

Security Misconfiguration's jump to #2 tracks the shift to cloud-native and infrastructure-as-code. When a single misapplied Terraform module or over-permissive storage bucket policy can expose an entire environment, misconfiguration stops being a housekeeping issue and becomes a top-tier breach vector.

How do you test each OWASP 2025 category continuously?

You test the 2025 categories continuously by wiring role-aware, deploy-triggered checks into CI/CD rather than relying on periodic scans. Point-in-time assessments miss the moments that matter — a new endpoint, a bumped dependency, a changed IAM role, a merged pull request. The table below pairs each category with a continuous-testing approach that fits a modern pipeline.

CategoryWhat to test continuouslyPrimary technique
A01 Broken Access ControlAuthorization across roles and object IDs (IDOR); SSRF on outbound fetchersAuthenticated, role-aware DAST + IDOR fuzzing
A02 Security MisconfigurationCloud posture, headers, default creds, exposed admin panelsCSPM + IaC scanning + config diffing
A03 Software Supply ChainDependency CVEs, transitive deps, build/pipeline integritySBOM generation + diffing, Dependency-Track
A04 Cryptographic FailuresTLS config, weak ciphers, secrets at rest, hard-coded keysSecret scanning + TLS/crypto probes
A05 InjectionSQL, NoSQL, command, template, XSS sinksParameterized DAST tuned per sink
A06 Insecure DesignMissing controls, abuse cases, business-logic flawsThreat modeling + abuse-case testing
A07 Authentication FailuresCredential stuffing, weak MFA, session handlingAuth flow fuzzing + rate-limit checks
A08 Data Integrity FailuresUnsigned updates, insecure deserialization, CI trustSignature verification + integrity checks
A09 Logging & AlertingCoverage of security events; alert firing and routingDetection validation / purple-team drills
A10 Mishandling of Exceptional ConditionsError paths, fail-open logic, verbose errorsFault injection + negative testing

Broken Access Control stays #1 for a reason: scanners flag it poorly because authorization is business logic. In the 2025 data, 100% of tested applications had at least one form of broken access control. Test it with authenticated, role-aware sessions — not anonymous crawling — or you will miss the exact class of bug most likely to breach you.

A category-by-category walkthrough of the 2025 Top 10

A01:2025 — Broken Access Control

Broken Access Control is the failure to enforce what an authenticated user is allowed to do, and it remains the #1 risk. It covers unauthorized disclosure, modification, or destruction of data, and now absorbs SSRF (CWE-918) and CSRF (CWE-352). With 40 mapped CWEs, an average incidence rate of roughly 3.73%, and a maximum near 20%, it is both the most prevalent and the hardest to catch with generic tooling. Test it by exercising every endpoint as multiple roles — anonymous, standard user, admin, and cross-tenant — and confirm that "deny by default" holds. Include functional access-control assertions in unit and integration tests so a broken check fails the build.

A02:2025 — Security Misconfiguration

Security Misconfiguration is insecure default settings, incomplete hardening, and exposed surfaces, and it rose to #2. It maps 16 CWEs with an average incidence of about 3.00%. In cloud-native systems this means open storage buckets, permissive security groups, verbose error pages, unpatched default accounts, and missing security headers. Continuous testing here is CSPM plus infrastructure-as-code scanning: evaluate every Terraform/CloudFormation change before apply, and re-baseline running environments so drift is caught within hours.

A03:2025 — Software Supply Chain Failures

Software Supply Chain Failures is the new #3 category covering compromises across dependencies, build systems, and distribution — not just known-vulnerable components. It expands 2021's A06 and, notably, carried the highest average incidence rate of any category at 5.19% in the contributed data. It also topped the community survey. Risk indicators include untracked transitive dependencies, no SBOM, CI/CD systems weaker than production, and simultaneous (rather than staged) rollouts. Test continuously by generating and diffing an SBOM on every build, wiring tools like OWASP Dependency-Track into CI, sourcing components only from trusted registries over secure links, and enforcing separation of duties so no single identity can push to production unchecked.

A04:2025 — Cryptographic Failures

Cryptographic Failures is the exposure of data through weak, missing, or misapplied cryptography, and it dropped to #4. It maps 32 CWEs with an average incidence around 3.80%. The failures are rarely broken algorithms; they are missing TLS, weak cipher suites, hard-coded or reused keys, unsalted hashes, and sensitive data stored in the clear. Test with automated TLS and cipher probes, secret scanning across code and build artifacts, and checks that enforce encryption at rest and in transit as a policy gate.

A05:2025 — Injection

Injection is untrusted input altering a command or query, and it moved down to #5. It still includes SQL, NoSQL, OS command, LDAP, expression-language, and cross-site scripting (XSS) sinks. The drop reflects maturing frameworks and parameterized queries, not disappearance. Test with DAST payloads tuned per sink and confirm that parameterization and output encoding hold on new endpoints — injection regressions often ride in on a single hand-built query.

A06:2025 — Insecure Design

Insecure Design is the absence of security controls by architecture rather than by bug, and it slipped from #4 to #6. No amount of clean implementation fixes a design that never required authorization on a sensitive workflow or never rate-limited a costly operation. Because there is no scanner for a missing control, this category is addressed through threat modeling, secure design reviews, and abuse-case testing that asks "how would an attacker misuse this feature as designed?"

A07:2025 — Authentication Failures

Authentication Failures is the inability to reliably confirm identity, renamed from "Identification and Authentication Failures." It covers credential stuffing, weak or missing MFA, predictable session identifiers, and flawed password recovery. Test continuously with authentication-flow fuzzing, brute-force and credential-stuffing simulations against rate limits, and session-fixation and token-handling checks on every auth change.

A08:2025 — Software or Data Integrity Failures

Software or Data Integrity Failures is trusting code or data whose integrity was never verified. It includes insecure deserialization, unsigned or unverified auto-updates, and CI/CD pipelines that deploy artifacts without provenance. Test by verifying digital signatures on dependencies and updates, validating serialized objects, and asserting that only signed, attested artifacts can be promoted to production.

A09:2025 — Security Logging and Alerting Failures

Security Logging and Alerting Failures is insufficient visibility and response, renamed to stress alerting over passive monitoring. Logs that no one reads and alerts that never fire are functionally invisible to an incident responder. Test detection the way you test code: run purple-team drills and detection-validation exercises that generate known-bad events and confirm the alert fires, routes to a human, and carries enough context to act.

A10:2025 — Mishandling of Exceptional Conditions

Mishandling of Exceptional Conditions is the new #10 category for how systems behave under abnormal or error states. It maps 24 CWEs including CWE-209 (error messages leaking sensitive information), CWE-476 (NULL pointer dereference), and CWE-636 (failing open instead of closed). The core failure mode is a system that, when it breaks, breaks insecurely — granting access, skipping a check, or leaking a stack trace. Test with fault injection and negative testing: force timeouts, missing parameters, and downstream failures, then confirm the system fails closed and returns a safe, generic error.

How should teams prioritize fixes across the 2025 categories?

Prioritize by verified, exploitable impact rather than by a finding's raw category rank. A confirmed IDOR exposing other tenants' records (A01) outranks a theoretical misconfiguration sitting behind three layers of auth (A02), even though both are high on the list. The ranking tells you where to invest testing effort; it does not tell you which of your findings to fix first.

Chain findings into attack paths so a "medium" that unlocks a "critical" gets the attention it deserves — an SSRF that reaches a cloud metadata endpoint and yields credentials is not a medium. Verify exploitability before you escalate, and let confirmed, chained impact drive the queue.

Map every finding to its OWASP 2025 category in your tracker. Over a quarter, the distribution tells you exactly where your secure-development lifecycle leaks — if half your confirmed issues are A01 and A02, the fix is guardrails in code and infrastructure, not another annual pentest.

For API-heavy systems, treat the OWASP Top 10 as a floor, not a ceiling. Pair it with the OWASP API Security Top 10, which digs deeper into broken object-level authorization (BOLA), broken function-level authorization, and mass assignment — the exact places where web-app assumptions break down against machine-to-machine traffic.

Key takeaways

  • Broken Access Control is still #1, and 100% of tested applications had at least one instance of it — authorization remains the single most reliable place to find real bugs.
  • There are two genuinely new categories in 2025: Software Supply Chain Failures (A03) and Mishandling of Exceptional Conditions (A10). Everything else is a re-rank, a rename, or a merge.
  • SSRF is no longer standalone — it was consolidated into A01 as CWE-918, so treat it as an access-control problem over outbound requests.
  • Insecure Design went down, not up, moving from #4 to #6; do not repeat the common error that it climbed the list.
  • Security Misconfiguration rose to #2, reflecting that cloud and IaC mistakes now rival code bugs as breach vectors.
  • Supply Chain Failures had the highest average incidence rate at 5.19%, making dependency and pipeline integrity a first-class engineering concern.
  • The list spans 248 CWEs across 2.8M+ applications — it is data-driven, so map your findings to it and let the distribution guide investment.

Frequently asked questions

Is the OWASP Top 10 a compliance requirement?

Not directly, but PCI DSS, SOC 2, and most customer security questionnaires expect you to test against it and remediate findings, which makes it a de facto baseline. Being able to show category-mapped coverage is often the fastest way to answer a security review.

What are the two new categories in the 2025 Top 10?

A03:2025 Software Supply Chain Failures and A10:2025 Mishandling of Exceptional Conditions. A03 expands 2021's "Vulnerable and Outdated Components" to the entire build-and-distribution ecosystem; A10 is entirely new and covers error handling, logic errors, and fail-open behavior.

What happened to SSRF in the 2025 list?

Server-Side Request Forgery was a standalone category (A10:2021) but was consolidated into A01:2025 Broken Access Control as a notable weakness, CWE-918. It is now framed as an authorization failure over server-side outbound requests rather than a category of its own.

Did Insecure Design move up in 2025?

No. Insecure Design dropped from #4 in 2021 to #6 in 2025. It remains important — design flaws cannot be scanned away — but it did not climb the ranking.

Does the Top 10 cover APIs?

Partially. For API-heavy systems, pair it with the OWASP API Security Top 10, which covers object-level authorization, function-level authorization, and mass assignment in far more depth than the general web list.

How often should we test against the Top 10?

Continuously. Tie testing to deploys and dependency changes so new risk is caught in hours, not at the next annual assessment. Access control and misconfiguration especially benefit from role-aware checks on every release.

How many CWEs does the 2025 Top 10 cover?

248 CWEs across the ten categories, an average of about 25 per category, derived from contributed data on more than 2.8 million applications plus a community survey for two of the ten.

The categories move between editions, but the durable habit does not: test every category continuously against realistic, authenticated conditions, and verify that a finding is genuinely exploitable before it becomes an alert. That is what turns the OWASP Top 10 from a checklist into a measure of whether your defenses actually hold.

Sources