The eighth edition of the OWASP Top 10 has landed, and once again, the top spot goes to A01: Broken Access Control. This isn’t just a repeat headline, it underlines a persistent gap in application security programmes. At Cerbos, our mission is to ensure teams don’t reinvent access-control logic, which means helping you establish policy-driven, fine-grained authorization that actually scales and withstands audits.
In the introduction to the 2025 list, OWASP states that “Broken Access Control maintains its position at #1 as the most serious application security risk … on average 3.73% of applications tested had one or more of the 40 CWEs in this category.”

What does that tell us?
1. The fundamentals of authorization and access control are still fragile across many applications.
2. Legacy patterns, such as ad-hoc role checks, simple role-based locks,and tangled if-else logic, don’t hold up.
3. As architectures become more complex, such as microservices, multitenancy, APIs, and machine identities, the access control surface grows, but often the governance doesn’t. In short: this isn’t just a “we need better controls” message, it’s “we need a structured, scalable, and policy-centric approach to access control”.
If you’ve read our OWASP top 10 2021 write-up, you know we’ve been saying this for years. With the 2025 list reaffirming it, the time to act is now. Here’s how Cerbos addresses the challenge:
Instead of embedding access checks all over your codebase (if user.role == “admin”, else …), Cerbos lets you externalize access logic into policy files. That means you get:
One of the big weaknesses OWASP calls out relates to object-level access (“Broken Object Level Authorization”), where a user accesses or manipulates an object they should not. With Cerbos, you can express policies such as:
apiVersion: "api.cerbos.dev/v1"
resourcePolicy:
resource: document
version: "default"
rules:
- actions:
- read
- update
- delete
effect: EFFECT_ALLOW
roles:
- manager
condition:
match:
expr: |
R.attr.owner == P.id
&& P.attr.region == R.attr.region
This kind of policy logic ensures users act only on the resources they truly should have access to, minimising the “force-browse”, “ID-tampering”, or “object parameter manipulation” attacks that make access control vulnerabilities.
The old “role only” check is no longer sufficient. Modern apps require context: time of day, location, ownership, financial threshold, 2FA status, and multi-tenant boundaries. Cerbos supports ABAC implicitly: you can incorporate attributes of user, resource, action, and environment into your CEL (Common Expression Language) conditions. For example:
P.attr.is2faVerified == true && P.attr.region == R.attr.region && R.attr.value < P.attr..maxApprovalAmount
Because your policies are both expressive and maintainable, you align with the principle of least privilege, enforce deny-by-default, and reduce drift.
As your organization grows (multiple microservices, many teams, tenants, roles, domains), ad-hoc code checks quickly become unmanageable. Cerbos gives you:
Here’s a recommended roadmap:
Audit existing access patterns
Define your policy model
tenant:{tenantId}:project:{projectId}:service:{serviceId}) and action categories.Write expressive policies
Integrate and enforce
Govern, monitor, and iterate
Align with audit/compliance
The fact that Broken Access Control has retained the #1 spot in OWASP Top 10 2025 means that despite knowing what the problem is, many organizations still struggle to deploy authorization in a robust, centralised, context-aware way.
At Cerbos, we believe that the right answer to this persistent problem is policy-driven, fine-grained, expressive access control, detached from business logic and owned by governance teams.
If you’re facing a pentest, preparing for an audit, or simply attempting to scale your authorization controls across a growing architecture, now is the time to act.
If you want to dive deeper into implementing and managing authorization, check out Cerbos, or speak with a Cerbos engineer.
Book a free Policy Workshop to discuss your requirements and get your first policy written by the Cerbos team
Join thousands of developers | Features and updates | 1x per month | No spam, just goodies.