Broken Object Level Authorization
Broken Object Level Authorization is a security vulnerability where an application or API fails to properly verify that a requesting user is permitted to access a specific data object. An attacker can exploit this by manipulating object identifiers in requests to retrieve or modify data belonging to other users. It is widely considered among the most critical and common vulnerabilities affecting APIs.
BOLA occurs when an API endpoint accepts a client-supplied identifier (such as a resource ID in a URL path, query parameter, or request body) and retrieves or operates on the corresponding object without performing adequate server-side validation that the authenticated principal is authorized to access that specific object instance. Object-level authorization checks are typically implemented at the code level, and their absence or inconsistent application allows an attacker to substitute identifiers to access arbitrary objects outside their intended authorization scope. Exploitation may result in unauthorized data disclosure, data manipulation, or privilege escalation. The vulnerability is distinct from function-level authorization failures, as it concerns per-object access decisions rather than access to API functionality broadly.
Why it matters
Broken Object Level Authorization is consistently ranked as the most critical vulnerability in the OWASP API Security Top 10, and its prevalence reflects a fundamental challenge in API design: every endpoint that exposes a resource identifier creates a potential access control decision point. When those decisions are absent or inconsistently applied server-side, attackers can enumerate or manipulate identifiers to reach data that was never intended to be accessible to them. The consequences typically include unauthorized data disclosure, data manipulation, and in some cases privilege escalation.
Who it's relevant to
Inside BOLA
Common questions
Answers to the questions practitioners most commonly ask about BOLA.