OWASP Top 10 Vulnerabilities 2025: What to Test Before You Launch
The OWASP Top 10 vulnerabilities for 2025 are ten web application risk categories, led by broken access control. Test each before launch, using a scan, a manual test or a design review, and add a penetration test where the list stops.
By Sangam Goel, Founder & C.T.O · Updated 2 Nov 2026

Key takeaways
- The 2025 list has ten categories. Test broken access control (A01) and security misconfiguration (A02) first, then work down the list.
- The list is an awareness document, not a test standard. A passed checklist is not proof that an application is secure.
- In our view, supply chain, integrity, logging and exceptional-condition failures are the easiest to miss, because a test of the running site rarely reaches them. Give each a named owner before launch.
- Every row of the pre-launch table needs evidence you can attach. Rows that need configuration, code or design review are worth raising before testing starts.
In this article
- 1What Are the OWASP Top 10 Vulnerabilities?
- 2The OWASP Top 10 2025 List at a Glance
- 3Broken Access Control and Security Misconfiguration: Test These First
- 4A01:2025 Broken Access Control
- 5A02:2025 Security Misconfiguration
- 6Injection: SQL Injection and Cross-Site Scripting
- 7SQL Injection
- 8Cross-Site Scripting
- 9Cryptographic Failures, Authentication Failures and Insecure Design
- 10A04:2025 Cryptographic Failures
- 11A07:2025 Authentication Failures
- 12A06:2025 Insecure Design
- 13What Teams Miss: Supply Chain, Integrity, Logging and Exceptional-Condition Failures
- 14A03:2025 Software Supply Chain Failures
- 15A08:2025 Software or Data Integrity Failures
- 16A09:2025 Security Logging and Alerting Failures
- 17A10:2025 Mishandling of Exceptional Conditions
- 18OWASP Top 10 Checklist: A Pre-Launch Testing Table
- 19What the OWASP Top 10 Does Not Cover
- 20Why a Checklist Is Not a Penetration Test
- 21Business Logic Flaws
- 22APIs and Cloud
- 23Where the Top 10 Stops: ASVS and the Web Security Testing Guide
- 24How Our Pre-Launch Security Test Works: Five Steps and a Report
- 25Next Step: Book a Consultation Before You Launch
- 26Frequently asked questions
A scanner can report a clean result against all ten categories and still miss the flaw that lets one customer read another customer’s invoices. That gap is why this page treats the OWASP Top 10 as a pre-launch test plan, not a glossary.
OWASP, the Open Worldwide Application Security Project, publishes the Top 10 as a ranked list of web application risk categories. The 2025 edition keeps broken access control first and moves security misconfiguration up to second. It widens the old components category into software supply chain failures, folds server-side request forgery into access control, and adds a new category for mishandling exceptional conditions.
For each category below you get what to test before go-live, an illustrative example of how a finding reads in a report, and whether a scan, a manual test or a design review is the right method. The page is written for developers and Chief Technology Officers (CTOs) in India with a launch to protect.
What Are the OWASP Top 10 Vulnerabilities?
The OWASP Top 10 is a ranked list of the ten most critical web application risk categories. OWASP’s co-leads describe it as a data-driven awareness document that helps organisations prioritise, so it is not a specification you pass or fail.
The 2025 edition draws on more than 2.8 million tested applications and 589 weakness types, called CWEs (Common Weakness Enumeration entries), according to OWASP's introduction. Each category groups many CWEs under one name.
The OWASP Top 10 2025 List at a Glance
The OWASP Top 10 2025 list runs from A01 Broken Access Control to A10 Mishandling of Exceptional Conditions. The table below shows how each category moved since the previous edition.
| 2025 category | 2021 equivalent | What changed |
|---|---|---|
| A01 Broken Access Control | Broken Access Control (#1) | Still first; Server-Side Request Forgery (SSRF) rolled in |
| A02 Security Misconfiguration | #5 | Up three places |
| A03 Software Supply Chain Failures | Vulnerable and Outdated Components (#6) | Widened to the build, distribution and update chain |
| A04 Cryptographic Failures | #2 | Down two places |
| A05 Injection | #3 | Down two places; includes cross-site scripting (XSS) |
| A06 Insecure Design | #4 | Down two places |
| A07 Authentication Failures | Identification and Authentication Failures (#7) | Renamed |
| A08 Software or Data Integrity Failures | #8 | Same position |
| A09 Security Logging & Alerting Failures | Security Logging and Monitoring Failures (#9) | Renamed to stress alerting |
| A10 Mishandling of Exceptional Conditions | New | Error handling and failing open |
OWASP chose two of the ten categories, A03 and A09, from its community survey rather than testing data. Our recommendation: a black-box test alone, run from outside with no view of your build pipeline or logs, does not verify them.
Broken Access Control and Security Misconfiguration: Test These First
Test broken access control (A01) and security misconfiguration (A02) first, because they hold the top two places in the 2025 list. One needs a person who understands your user roles. The other needs every environment compared against a hardened baseline.
A01:2025 Broken Access Control
What to test: Create two ordinary accounts and one admin account. Change object identifiers in URLs and request bodies so account A asks for account B's record. Open admin URLs as a normal user. Call each endpoint with methods the interface never uses. Replay a request after logout. SSRF, where a server is tricked into fetching an internal address, now sits in this category.
What a finding looks like (illustrative): "High: any signed-in customer can download another customer's invoice by changing the invoice ID. Evidence: request and response for two accounts. Fix: check record ownership on the server for every request."
How to test it: Manual test. A scanner does not know which user should see which record. OWASP reports an average incidence rate of 3.74% across 40 CWEs.
A02:2025 Security Misconfiguration
What to test: Compare staging and production against one hardened baseline. Look for debug mode, default credentials, sample applications, directory listing, detailed stack traces, missing security headers and publicly readable storage. Check every environment, since a setting fixed in one is often left behind in another.
What a finding looks like (illustrative): "Medium: the production login page returns a full stack trace and framework version on a malformed request. Evidence: screenshot of the response. Fix: return a generic error and log the detail internally."
How to test it: Automated scan for exposed files, headers and banners. Needs config, code or design review for server and cloud settings a scan cannot see. OWASP reports an average incidence rate of 3.00% across 16 CWEs.

Injection: SQL Injection and Cross-Site Scripting
Injection (A05) means untrusted input reaches an interpreter that runs it as a command. In the 2025 list the category covers Structured Query Language (SQL) injection and cross-site scripting. Test every place user input enters your application, and confirm that data stays separate from commands.
What to test: Every form field, query parameter, header, cookie, file name and hidden field. Confirm that database queries are parameterised, meaning user data is passed separately from the query text, and that output is encoded for the page where it lands.
What a finding looks like (illustrative): "High: the search parameter is joined into a database query; a single quote returns a database error. Evidence: request, response and extracted table names. Fix: use parameterised queries."
How to test it: Automated scan for common patterns. Manual test for filtered or context-dependent cases. Needs config, code or design review to confirm parameterisation in code.
SQL Injection
SQL injection puts attacker-controlled text into a database query. Try search boxes, filters, sort fields and login forms with a single quote and true/false conditions, then compare errors and response times. A pass is a rejected or unchanged response. Object-relational mappers (ORMs) do not make you immune: the OWASP testing guide lists ORM injection as its own test case.
Cross-Site Scripting
Cross-site scripting (XSS) lets an attacker run script in another user's browser. OWASP files it under A05 Injection and treats it as frequent but usually lower impact per instance. Test stored values shown to other users (profiles, comments, support tickets) and reflected values (search terms, error messages). A pass is script displayed as text, never executed.
Cryptographic Failures, Authentication Failures and Insecure Design
Before launch, confirm that sensitive data is encrypted in transit and at rest, that login and session handling resist guessing and reuse, and that critical flows were designed with abuse in mind. The first two can be tested. The third needs a design conversation.
A04:2025 Cryptographic Failures
What to test: Transport Layer Security (TLS), the protocol that encrypts web traffic, at version 1.2 or later on every endpoint, HTTP redirecting to HTTPS with no downgrade, passwords stored with a slow hash such as Argon2, scrypt or PBKDF2, no keys or secrets in code, repositories or responses, and no caching of sensitive responses.
What a finding looks like (illustrative): "Medium: the server still accepts TLS 1.0 connections. Evidence: protocol scan output. Fix: disable TLS 1.0 and 1.1."
How to test it: Automated scan for protocols, certificates and headers. Needs config, code or design review for password hashing and key storage. OWASP reports an average incidence rate of 3.80% across 32 CWEs.
A07:2025 Authentication Failures
What to test: Multi-factor authentication for admin accounts, lockout or rate limiting on login and password reset, no default credentials, new passwords checked against common-password lists, a fresh session ID after login, and sessions that end on logout and after inactivity, including single sign-on logout.
What a finding looks like (illustrative): "High: 500 login attempts in one minute produced no lockout. Evidence: request log. Fix: add rate limiting and lockout, and require multi-factor authentication for admins."
How to test it: Manual test. Lockout and session behaviour depend on how your application is built.
A06:2025 Insecure Design
What to test: List your critical flows: signup, password reset, payment, booking, coupons, limited stock. For each, write abuse cases: what if a user repeats, reorders or automates this step? Check that tenants are separated in every tier.
What a finding looks like (illustrative): "Medium: a discount code can be applied repeatedly by resending the request. Evidence: three orders with one code. Fix: enforce one use per order on the server."
How to test it: Needs config, code or design review, then manual test to confirm each abuse case. A penetration test comes too late in the lifecycle to fix design flaws, so threat modelling (listing who would attack a feature and how) or design review should happen earlier.
What Teams Miss: Supply Chain, Integrity, Logging and Exceptional-Condition Failures
NVISO notes that supply chain pipeline work typically falls outside a penetration test, and that exceptional conditions are often found almost by accident. That is why each of the four below needs an owner before launch, not only a test.
A03:2025 Software Supply Chain Failures
What to test: Produce a software bill of materials (SBOM), a list of every library and version you ship. Scan it against known-vulnerability databases, pin versions in lockfiles, install packages only from official registries, and review who can change your build pipeline and developer tools.
What a finding looks like (illustrative): "High: the application ships a library version with a published remote code execution flaw. Evidence: SBOM entry and advisory ID. Fix: upgrade, and add a dependency scan to the build."
How to test it: Automated scan for known-vulnerable components. Needs config, code or design review for the pipeline.
A08:2025 Software or Data Integrity Failures
What to test: Confirm that updates, third-party scripts and build artefacts are verified by signature or checksum, that CI/CD (continuous integration and delivery) access is segregated, and that the application rejects serialised data (objects converted to bytes for storage or transfer) from untrusted sources.
What a finding looks like (illustrative): "Medium: a third-party script loads with no integrity check. If that host were compromised, the script would run in every customer's browser. Fix: add a hash the browser verifies, or host the script yourself."
How to test it: Manual test for deserialisation endpoints. Needs config, code or design review for signing and pipeline controls.
A09:2025 Security Logging and Alerting Failures
What to test: Trigger failed logins, denied access requests and rejected input. Check that each produces a log entry with user context, that logs resist tampering, and that a named person receives an alert.
What a finding looks like (illustrative): "Medium: 200 failed logins in ten minutes produced no log entry naming the account and no alert. Evidence: log extract. Fix: log the events and alert above a threshold."
How to test it: Manual test: cause the events, then read the logs. Needs config, code or design review for alert rules.
A10:2025 Mishandling of Exceptional Conditions
What to test: Send missing parameters, wrong data types, oversized bodies, interrupted uploads and timeouts. Confirm the application fails closed (denies the action and rolls back the transaction), shows users a generic message, logs detail internally and releases resources. OWASP maps 24 CWEs to this category.
What a finding looks like (illustrative): "Medium: aborting a file upload leaves the connection and temporary file open; repeated, the server runs out of resources. Fix: release resources in every error path."
How to test it: Manual test, using deliberate faults. Scanners catch only verbose error pages.
OWASP Top 10 Checklist: A Pre-Launch Testing Table
Use this table as the release gate: ten rows, each with a test, the evidence that proves it passed, and the right method. A row passes only when you can attach the evidence, not when someone says it was checked.
| Category | Test before launch | Evidence that it passed | How to test it |
|---|---|---|---|
| A01 Broken Access Control | Two-user cross-access test on every object endpoint | Request log: every cross-account and cross-role call is denied | Manual test |
| A02 Security Misconfiguration | Compare each environment to one hardened baseline | Clean scan report and a baseline comparison with no deviations | Automated scan; Needs config, code or design review |
| A03 Software Supply Chain Failures | Scan the SBOM and review pipeline access | SBOM file; scan with no unresolved critical or high items | Automated scan; Needs config, code or design review |
| A04 Cryptographic Failures | Protocol, hashing and secrets check | Report showing TLS 1.2+ only; written note on hashing and key storage | Automated scan; Needs config, code or design review |
| A05 Injection | Probe every entry point | No injectable parameter found; queries parameterised in code | Automated scan; Manual test |
| A06 Insecure Design | Abuse cases for each critical flow | Threat model plus a passed negative test per flow | Needs config, code or design review |
| A07 Authentication Failures | Lockout, multi-factor and session tests | Lockout recorded in logs; session ends on logout | Manual test |
| A08 Software or Data Integrity Failures | Integrity checks on updates, scripts and serialised data | Signatures or checksums verified; untrusted objects rejected | Manual test; Needs config, code or design review |
| A09 Security Logging & Alerting Failures | Trigger security events | Log entry with user context and a received alert for each | Manual test; Needs config, code or design review |
| A10 Mishandling of Exceptional Conditions | Fault injection on inputs and flows | Generic user message, internal log entry, transaction rolled back | Manual test |
Legend: Automated scan means a tool can do most of the work. Manual test means a person must try it. Needs config, code or design review means someone reads the settings, code or design documents.
What the OWASP Top 10 Does Not Cover
The Top 10 does not cover business logic flaws specific to your application, the full range of application programming interface (API) risks, or cloud configuration beyond what a web test reaches. Treat it as minimum coverage, and decide early what else your launch needs.
Why a Checklist Is Not a Penetration Test
A test that only walks through the ten headings misses flaws specific to your application. A real test follows how your application works: its roles, its pricing rules, its approval steps.
NVISO goes further and calls it ill-advised to commission a test purely against the Top 10, because the list leaves out many ways to attack an application. Brief your tester on your roles and workflows instead. The FAQ below answers the question directly.
According to the IBM Cost of a Data Breach Report 2026, offensive security testing, such as red teaming and penetration testing, was the largest cost-reducing factor in India, saving organisations an average of INR 2.47 crore.
Business Logic Flaws
Business logic flaws are faults in your own rules, such as a coupon that can be reused or a booking system that lets one user reserve hundreds of seats at once. No list can name them in advance because they belong to your application. A06 Insecure Design is the nearest category, but finding these flaws takes a tester who learns your workflows and tries to misuse them.
APIs and Cloud
API risks sit in a separate OWASP list, the OWASP API Security Top 10. If your launch is API-heavy, plan for API testing alongside this table. Cloud settings such as storage permissions and identity roles can fall under A02, but a web application test sees only some of them. We also offer cloud infrastructure VAPT, so ask for a Cloud Security Assessment when your launch depends on cloud configuration.
Where the Top 10 Stops: ASVS and the Web Security Testing Guide
OWASP’s Application Security Verification Standard (ASVS) is the more testable standard: OWASP’s testing guide describes it as the baseline for what to test, and NVISO says it bases its own application assessments on ASVS.
The OWASP Web Security Testing Guide (WSTG) goes deeper on how to test. It is a community-maintained framework covering authentication, session management, input validation, error handling, cryptography and business logic, and it describes itself as neither a rigid checklist nor a compliance standard. Use it to turn each table row into detailed test cases.
How Our Pre-Launch Security Test Works: Five Steps and a Report
Our web application VAPT at GS2 combines automated scanning with manual testing by our security experts, and ends in a report listing vulnerabilities, their risks, impact, evidence and recommended fixes. VAPT stands for Vulnerability Assessment and Penetration Testing. Our process has five steps:

- Information Gatheringcollect data about the target, such as domains, IPs, open ports, technologies and services.
- Vulnerability Identificationuse automated tools and manual techniques to find known vulnerabilities.
- Vulnerability Analysisjudge each finding's severity, impact and potential exploitability.
- Penetration Testingsimulate real-world attacks by exploiting the critical vulnerabilities, to assess actual risk.
- Comprehensive Reporta detailed report of findings, risks, impact, evidence and recommended fixes.
Rows marked “Needs config, code or design review” in the table above are the ones to raise when you speak to us. Our contact form also lists secure code review and software composition analysis (SCA) as separate service options, so mention them if your launch depends on code or dependency checks.
For testing after launch, see our PTaaS (Penetration Testing as a Service) page.
Next Step: Book a Consultation Before You Launch
To have your application tested before release, book a consultation and choose Web Application VAPT in the form. You can also call +91-9838391333 or email info@gs2cybersec.com. Tell us your stack, your user roles and whether the launch is API-heavy, and bring the checklist table above. Ask us about scope and pricing during the consultation. The service itself is described on the Web Application VAPT service page.
Ready to Test Before Launch?
Frequently asked questions
Sources
- 1.OWASP Top 10:2025 introduction
- 2.OWASP Top 10:2025 A01 Broken Access Control
- 3.OWASP Top 10:2025 A02 Security Misconfiguration
- 4.OWASP Top 10:2025 A04 Cryptographic Failures
- 5.OWASP Top 10:2025 A05 Injection
- 6.OWASP Top 10:2025 A10 Mishandling of Exceptional Conditions
- 7.OWASP Web Security Testing Guide
- 8.OWASP Top 10 2025 – A Pentester's Perspective
- 9.OWASP Top 10: Broken access control still tops app security list
- 10.IBM Cost of a Data Breach Report 2026, India release, IBM India Newsroom
- 11.OWASP Web Security Testing Guide: 4.7.5.7 ORM Injection

