Broken Access Control
Users able to act outside their intended permissions
What it means
Broken Access Control happens when an application fails to properly check whether a user is allowed to perform a specific action or access a specific resource. In many cases, the application shows the correct UI but doesn't enforce the rule on the server.
/account/1043 to /account/1044) and sees another user's account details, because the application trusts the ID and doesn't verify ownership.
Why it matters
It is currently ranked #1 because unauthorized access can expose customer data, allow account takeover, and enable actions on behalf of other users. The impact is often severe and directly affects privacy and trust.
Common causes
- Missing server-side authorization checks
- Relying on UI hiding instead of access rules
- Insecure direct object references (IDOR)
- Weak or inconsistent role-based access control
What website owners can do
- Ask your developer to confirm that every privileged action is checked on the server
- Log out and back in as a lower-privilege user and try to reach admin pages
- Review third-party plugins for anything that grants elevated access
What developers can check
- Enforce access control in a centralized place that can't be bypassed
- Deny by default unless a resource is explicitly public
- Use ownership checks on every resource access, not just the UI
How a scanner can help
Automated scanners can flag exposed sensitive paths, missing authentication on admin endpoints, and predictable resource IDs. They cannot fully test business-logic authorization, which typically needs manual review.