Broken access control is the first risk in the OWASP Top 10:2025, and access must be checked for every function, object and field on the server.
- Document authorization rules for functions, data and fields.
- Enforce function-, data- and field-level checks at a trusted service layer.
- Base decisions on the originating user’s permissions, and apply permission changes promptly.
- Isolate tenants in multi-tenant systems, and protect administrative interfaces with extra layers.
Each requirement has a level. Level 1 holds the first-layer defenses (about a fifth of the standard), Level 2 adds what OWASP says most applications should strive for, and Level 3 adds defense-in-depth and harder-to-implement controls; meeting a level means meeting every requirement of the levels below it too. Cite a requirement with the version, for example v5.0.0-8.1.1.
V8.1 Authorization Documentation · 4 requirements
V8.1.1 Level 1
Verify that authorization documentation defines rules for restricting function-level and data-specific access based on consumer permissions and resource attributes.
V8.1.2 Level 2
Verify that authorization documentation defines rules for field-level access restrictions (both read and write) based on consumer permissions and resource attributes. Note that these rules might depend on other attribute values of the relevant data object, such as state or status.
V8.1.3 Level 3
Verify that the application's documentation defines the environmental and contextual attributes (including but not limited to, time of day, user location, IP address, or device) that are used in the application to make security decisions, including those pertaining to authentication and authorization.
V8.1.4 Level 3
Verify that authentication and authorization documentation defines how environmental and contextual factors are used in decision-making, in addition to function-level, data-specific, and field-level authorization. This should include the attributes evaluated, thresholds for risk, and actions taken (e.g., allow, challenge, deny, step-up authentication).
V8.2 General Authorization Design · 4 requirements
V8.2.1 Level 1
Verify that the application ensures that function-level access is restricted to consumers with explicit permissions.
On this site: Authorize functions and fields as well as objects (guide) · Authenticate workloads and authorize their service actions (guide) · Authorization models: RBAC, ABAC, ReBAC and policy as code you can test (guide)
V8.2.2 Level 1
Verify that the application ensures that data-specific access is restricted to consumers with explicit permissions to specific data items to mitigate insecure direct object reference (IDOR) and broken object level authorization (BOLA).
On this site: Enforce authorization for every object action (guide) · Review a code change through its trust boundaries (guide) · Authorization models: RBAC, ABAC, ReBAC and policy as code you can test (guide) · Keep retrieval inside the user’s data boundary (guide) · Constrain MCP and multi-agent trust boundaries (guide) · Defend agent memory and context against poisoning (OWASP ASI06) (guide) · Case study: First American's EaglePro document exposure (2019) (guide)
V8.2.3 Level 2
Verify that the application ensures that field-level access is restricted to consumers with explicit permissions to specific fields to mitigate broken object property level authorization (BOPLA).
On this site: Authorize functions and fields as well as objects (guide) · Authorization models: RBAC, ABAC, ReBAC and policy as code you can test (guide) · Mass assignment (over-posting) (fix card)
V8.2.4 Level 3
Verify that adaptive security controls based on a consumer's environmental and contextual attributes (such as time of day, location, IP address, or device) are implemented for authentication and authorization decisions, as defined in the application's documentation. These controls must be applied when the consumer tries to start a new session and also during an existing session.
V8.3 Operation Level Authorization · 3 requirements
V8.3.1 Level 1
Verify that the application enforces authorization rules at a trusted service layer and doesn't rely on controls that an untrusted consumer could manipulate, such as client-side JavaScript.
On this site: Enforce authorization for every object action (guide) · Contain prompt injection at the application boundary (guide) · Review trust boundaries in mobile and native clients (guide) · Review a code change through its trust boundaries (guide) · Authorization models: RBAC, ABAC, ReBAC and policy as code you can test (guide) · Authorize agent tools outside the model (guide) · Keep secrets and controls out of hidden context (OWASP LLM08:2026) (guide) · Case study: First American's EaglePro document exposure (2019) (guide) · Missing authentication for a critical function (fix card)
V8.3.2 Level 3
Verify that changes to values on which authorization decisions are made are applied immediately. Where changes cannot be applied immediately, (such as when relying on data in self-contained tokens), there must be mitigating controls to alert when a consumer performs an action when they are no longer authorized to do so and revert the change. Note that this alternative would not mitigate information leakage.
On this site: Authorize agent tools outside the model (guide) · Contain cascading failures and rogue agents (guide) · SCIM deprovisioning: make account disablement remove every usable authority (guide)
V8.3.3 Level 3
Verify that access to an object is based on the originating subject's (e.g. consumer's) permissions, not on the permissions of any intermediary or service acting on their behalf. For example, if a consumer calls a web service using a self-contained token for authentication, and the service then requests data from a different service, the second service will use the consumer's token, rather than a machine-to-machine token from the first service, to make permission decisions.
On this site: Authorization models: RBAC, ABAC, ReBAC and policy as code you can test (guide)
V8.4 Other Authorization Considerations · 2 requirements
V8.4.1 Level 2
Verify that multi-tenant applications use cross-tenant controls to ensure consumer operations will never affect tenants with which they do not have permissions to interact.
On this site: Enforce authorization for every object action (guide) · Review tenant boundaries before implementation (guide) · Authorization models: RBAC, ABAC, ReBAC and policy as code you can test (guide) · Keep retrieval inside the user’s data boundary (guide) · SCIM deprovisioning: make account disablement remove every usable authority (guide)
V8.4.2 Level 3
Verify that access to administrative interfaces incorporates multiple layers of security, including continuous consumer identity verification, device security posture assessment, and contextual risk analysis, ensuring that network location or trusted endpoints are not the sole factors for authorization even though they may reduce the likelihood of unauthorized access.
Requirement IDs, levels and text are from the OWASP Application Security Verification Standard 5.0.0 (copyright © 2008-2025 The OWASP Foundation), unmodified, under the Creative Commons Attribution-ShareAlike 4.0 International License. Imported from release v5.0.0_release (commit 5cf9b03); license.
Guides on this site
Enforce authorization for every object action
Authorize the authenticated subject, requested operation, and specific resource together; a valid login or unpredictable identifier is insufficient.
Authorize functions and fields as well as objects
Prevent mass assignment, sensitive-field exposure and administrative actions that a valid object lookup alone cannot protect.
Authorization models: RBAC, ABAC, ReBAC and policy as code you can test
Translate roles, attributes and relationships into explicit subject-action-resource decisions, prevent broken object level authorization (BOLA), and verify ownership and tenant boundaries with tests.
Review tenant boundaries before implementation
Trace tenant identity through requests, data stores, caches, jobs, and administration, then turn plausible isolation failures into tests.
Review trust boundaries in mobile and native clients
Protect local data and platform interactions while keeping server-side authorization independent of the client’s behavior.
SCIM deprovisioning: make account disablement remove every usable authority
Connect SCIM resource updates to current sessions, tokens, group-derived permissions and background jobs, with explicit tenant mapping, CAEP revocation events and a measurable revocation contract.
Keep retrieval inside the user’s data boundary
Carry document permissions through ingestion, retrieval, caching and citations so a model never receives another tenant’s records.
Constrain MCP and multi-agent trust boundaries
Validate each connection and delegated action without treating a token for another service, a tool description, another agent or a state handle as authority.
Authorize agent tools outside the model
Bind each proposed action to the user, resource and approved arguments before allowing a tool to cause a side effect.
Authenticate workloads and authorize their service actions
Use service identities, mutual TLS and function permissions without mistaking an encrypted connection for complete authorization.
Review a code change through its trust boundaries
Turn a pull request into a small set of security claims that can be checked against the surrounding system and tests.
Practice
- RAG access control lab: Stop a retriever from returning another tenant’s documents · Browser lab
- Excessive agency lab: Bind an agent’s action to the approved arguments · Browser lab
- IDOR lab: Repair an invoice authorization bug · Browser lab
- Mass assignment lab: Update only the fields users may edit · Browser lab
- Secure a real HTTP API · Local project
- Enforce retrieval and tool boundaries across crashes · Local project
- Prove deprovisioning reaches sessions and queued work · Local project
- Keep an iOS app's storage, links and web bridge in bounds · Local project
- Repair an Android app's links, components, network policy and storage · Local project
References
- V8 Authorization (ASVS 5.0.0 source)
- OWASP Web Security Testing Guide: Authorization
- OWASP Authorization Cheat Sheet
List data from the publisher. A guide is listed as the main subject when the weakness or risk is what the guide is about, and as covering it when a dedicated section or worked example addresses it.