Software supply chain failures entered the OWASP Top 10 at number three. Most organizations cannot list what their site depends on.
Current edition is the OWASP Top 10 2025, and the categories have shifted since the last one. Broken access control holds first place, security misconfiguration takes second, and software supply chain failures have arrived at third. Auditing against the current list tells you where your applications genuinely stand today, rather than where the 2021 list placed them.

- Top 10 2025The current released edition
- A01 access controlStill the first category
- A03 supply chainDependencies, and what they pull in
- ConfigurationSecond category, and rarely tested
Six things that determine whether a web audit turns up anything genuine.
Broken access control, still the first category
It sits at A01 in the 2025 edition, exactly where it sat before. First place belongs to it because it is simultaneously the most common failure and among the most damaging: one user reaching data or functions belonging to another user, or to an administrator. Automated tools catch some of it. The remainder needs a person who understands what the application is supposed to permit, which makes access control testing the least automatable part of any web audit.
Security misconfiguration, at number two
Second place in the 2025 list. Default credentials still in place. Errors returning far too much detail. Features enabled that nobody needed. Hardening missing from the platform underneath the application. Headers simply absent. It ranks second because it is everywhere and costs an attacker almost nothing to exploit. It is also the category an audit scoped purely to application code misses most often, because the finding lives in the deployment rather than in the source.
Software supply chain failures, now at number three
Third in the 2025 edition. A modern web application is assembled out of dependencies, and every one of those dependencies drags its own dependencies along. The audit question runs deeper than whether a known vulnerable package is present. It asks whether anybody in the business can produce that list at all, and whether the build process would notice if something inside it changed overnight.
Cryptographic failures and injection
They sit at A04 and A05 respectively. Cryptographic failures cover data that ought to have been protected in transit or at rest and was not, or was protected poorly enough to amount to the same thing. Injection is still on the current list, which after two decades of sustained attention says something uncomfortable about how applications continue to be built under time pressure.
Design, authentication, and integrity
Insecure design at A06, authentication failures at A07, and software or data integrity failures at A08. The first of those three lies entirely beyond what a scanner can reach, because it concerns decisions taken before anybody wrote a line of code. Finding it means reading how the application is supposed to work rather than probing how it responds.
Logging, alerting, and exceptional conditions
Security logging and alerting failures at A09, mishandling of exceptional conditions at A10. Both concern what the application does at the moment something goes wrong: whether anybody would find out, and whether the failure itself opens a door. They sit at the bottom of the list, and they are reliably the two categories nobody has ever examined.
The list has moved on. An audit written against the 2021 categories is measuring the decade before this one.
OWASP publishes the current edition while keeping the older ones accessible. That is helpful as reference material and distinctly unhelpful when a report quietly measures you against the wrong one.
- OWASP Top 10 2025 is the most recent released version. Both the 2021 and 2017 editions stay published as reference material, which is precisely how a report can look entirely current while working from a superseded list.
- Software supply chain failures have moved to A03 in the 2025 edition. Most web audits historically treated that category as a footnote at best. Its promotion reflects how applications genuinely get built now, which is assembled out of dependencies rather than written from scratch.
- The current edition places mishandling of exceptional conditions at A10 and security logging and alerting failures at A09. Both are concerned with what happens once something goes wrong, and that is reliably the part of any application least likely to have been tested by anybody.
- The practical implication is straightforward enough. Ask any proposed audit which edition it works against. Where the answer comes back as 2021, the findings will be genuine while the coverage reflects a different set of priorities from the ones OWASP now publishes.
Four things separating a genuine web audit from a scan report with a cover page.
Access control gets tested using real accounts at every privilege level
Broken access control still heads the list, and finding it means acting as one user and deliberately attempting to reach another user data and functions. That needs test accounts at every privilege level plus somebody who understands what the application is supposed to permit in the first place. It is the least automatable part of the work and reliably the most productive.
The dependency list is treated as a finding in its own right
Software supply chain failures occupy A03 in the current edition. The opening question is not whether some vulnerable package is present. It is whether anybody in the business can produce the list at all. Where the answer is no, that absence is the finding, because a dependency inventory nobody maintains is a vulnerability nobody will notice arriving.
We start by finding the applications you forgot
Scope something from memory and you will miss the campaign microsite an agency built, the staging environment that still resolves, and the API somebody exposed for a single integration. Running external attack surface discovery before scoping consistently adds applications to the list, and the forgotten ones are reliably in worse shape than any of the ones you remembered.
Retesting happens, because no finding is closed until somebody verified it
Any report ending at delivery leaves the single most important question unanswered: did the fix actually work. Retesting is built into the engagement rather than offered as an option, and it regularly reveals that a change addressed the one example given in the report rather than the underlying issue across the whole application.
Six situations common in American businesses where a web audit is the correct first move.
A business accepting payments or personal data through its website
Cryptographic failures at A04 and broken access control at A01 are the two categories that expose customer data most directly, and both are precisely what CCPA, CPRA and the other state privacy laws assume you already have under control. Where card data enters the picture, having an application security position is part of what PCI DSS expects rather than a pleasant addition to it.
An organization whose customers now ask about application security
Enterprise procurement now routinely asks web application security questions, and a SOC 2 audit will ask how changes get tested before they ship. A documented audit against the current OWASP Top 10 with findings that were retested is a considerably stronger answer than a scan report. It also answers the next customer questionnaire at a fraction of the cost, because the work already exists.
A group whose applications were built by several agencies across many years
Different builders, different frameworks, wildly different levels of care, and nobody anywhere holding a complete picture. Security misconfiguration at A02 and software supply chain failures at A03 dominate in this profile, because every application carries the assumptions of whoever built it along with whichever dependencies that person happened to pick.
A regulated firm with a customer-facing portal
Authentication failures at A07 and security logging and alerting failures at A09 carry the most weight here, because an examiner working under GLBA or NYDFS Part 500 asks two questions: is access properly controlled, and would you know if somebody abused it. That second question is the one businesses are consistently least prepared for.
An organization about to launch something
Insecure design at A06 is cheapest to find before anything ships, because the finding concerns a decision rather than a defect, and revisiting a decision after launch costs real money. Auditing during development, rather than treating it as a gate immediately before go-live, is the only point at which that category is genuinely addressable.
An institution with more public sites than anybody realized
Departments, campaigns, events and student bodies produce web properties without pause, very often on infrastructure the central team has never laid eyes on. Discovery before scoping is not optional in this environment, and the forgotten sites are consistently where security misconfiguration and unpatched dependencies are at their worst.
How US organizations check their web applications.
| Feature | Audited against the current Top 10 | Automated scanning only | Never tested |
|---|---|---|---|
Injection and common flaws found | Yes | Yes | No |
Access control tested across roles | Yes | Rarely | No |
Insecure design identified | Yes | No | No |
Dependency and supply chain reviewed | Yes | Partly | No |
Platform configuration reviewed | Yes | Sometimes | No |
Logging and alerting assessed | Yes | No | No |
Failure paths examined | Yes | No | No |
Findings verified after fix | Yes | No | Not applicable |
Against the current 2025 edition | Yes | Depends on the tool | Not applicable |
Report a customer would accept | Yes | Sometimes | No |
The OWASP Top 10 2025, and what each category means for an American web estate.
Category
A01:2025
- Name
- Broken Access Control
- What we most often find
- Object identifiers sitting in URLs that nothing checks against the signed-in user
Category
A02:2025
- Name
- Security Misconfiguration
- What we most often find
- Error pages saying too much, default accounts left in place, and platform hardening never applied
Category
A03:2025
- Name
- Software Supply Chain Failures
- What we most often find
- No one can produce the dependency list, and nothing is watching it for changes
Category
A04:2025
- Name
- Cryptographic Failures
- What we most often find
- Sensitive fields stored or sent without the protection everybody assumed was already there
Category
A05:2025
- Name
- Injection
- What we most often find
- Parameterization applied nearly everywhere, and one legacy query where somebody forgot
Category
A06:2025
- Name
- Insecure Design
- What we most often find
- A workflow placing trust in a client-supplied value it should never have trusted
Category
A07:2025
- Name
- Authentication Failures
- What we most often find
- The password reset flow, how sessions are handled, and rate limiting on the login path
Category
A08:2025
- Name
- Software or Data Integrity Failures
- What we most often find
- A deployment pipeline that would not detect an unauthorized change
Category
A09:2025
- Name
- Security Logging and Alerting Failures
- What we most often find
- Application events logged nowhere anybody monitors
Category
A10:2025
- Name
- Mishandling of Exceptional Conditions
- What we most often find
- Failure paths giving away internal detail, or leaving the application somewhere unexpected
Five steps, and retest is included rather than optional.
- 1
Discover what actually exists
Before scoping against whatever list somebody hands us, we run external discovery to find the applications that list leaves out. Campaign sites. Staging environments that still resolve. APIs exposed for one integration years ago. The forgotten ones are reliably in worse condition than the remembered ones, which makes them exactly the wrong things to leave outside the scope.
- 2
Scope against the current Top 10 and gather access
We need test accounts at every role, because access control at A01 simply cannot be tested without them. Beyond that, the dependency manifest for A03, the deployment configuration for A02 and A08, and whatever design documentation exists for A06. What we are able to see determines what we are able to find, and the difference between generous access and grudging access is substantial.
- 3
Testing covers all ten categories rather than only the automatable ones
Automated coverage goes where automation is genuinely effective. After that comes manual work across access control, design, authentication flows, the integrity of the deployment pipeline, logging, and the failure paths. Since the categories a tool cannot reach are the ones producing real incidents, they receive proportionally more of the available time.
- 4
Report against the categories, with reproduction and impact
Every finding is mapped to its OWASP category and comes with steps to reproduce it, a description of the actual impact rather than a generic severity rating, and a specific remediation. A finding nobody can reproduce never gets fixed, and a severity carrying no business impact never gets prioritized.
- 5
Retest and confirm the fix reached the pipeline
We verify each finding is genuinely closed, and that regularly reveals somebody fixed the specific example while leaving the underlying pattern untouched. We also confirm the fix exists in the source and in the pipeline rather than only in the running instance, since otherwise the very next deployment quietly reintroduces it.
What organizations ask about web application audits.
Fifteen questions that determine whether the audit is useful.
Scope
- Which applications are in scope?Including the ones marketing built.
- Do you know all your public sites?External discovery usually finds more.
- Does the scope include the platform, or only the code?A02 lives in the deployment.
- Are the APIs in scope?They frequently have weaker access control.
- Is there an authenticated area?A01 findings are almost all behind login.
Access
- Will we get test accounts at each role?Access control testing needs several.
- Is there a test environment?Or are we testing production carefully.
- Can we see the dependency manifest?A03 is far faster with it.
- Can we see the deployment configuration?A02 and A08 depend on it.
- Is there any design documentation?A06 cannot be found without context.
Afterwards
- Who fixes the findings?Internal team, or the agency who built it.
- Is there a retest included?A finding is not closed until it is verified.
- Does the fix reach the pipeline?Or only the running instance.
- Will dependencies be watched from now on?A03 is a continuous problem.
- When is the next audit?Applications change continuously.
The pages around this one.
Penetration testing
Testing driven by an objective across the entire estate, rather than working systematically through one application.
Defender EASM
Locating the applications and sites that never appeared on any list in the first place.
Vulnerability assessment
The wider scanning program that runs between audits.
Ask whoever built your site to send over the dependency list, and time how long it takes to arrive.
Software supply chain failures hold third place in the current OWASP Top 10. Where nobody can produce that list quickly, you already have a finding, and it happens to be the one predicting how much else an audit is likely to surface.
Related Services
Explore more solutions that work great with this service
Penetration Testing
Penetration testing for US businesses across external, internal, web
Learn moreVulnerability Assessment
Vulnerability assessment for US businesses across external attack
Learn moreCloud Security Posture Audit
Cloud security posture audits for US organizations: true inventory
Learn moreCyber Incident Response
Cyber incident response for US businesses. 24/7 on-call IR engineers
Learn moreSOC 2 Readiness
Get audit-ready for the report your buyers ask for
Learn more