Understanding API access control vulnerabilities
Access control vulnerabilities pose significant security risks in APIs, allowing unauthorized users to access, modify, or delete data that should be restricted. These vulnerabilities can lead to data breaches, privacy violations, and unauthorized system access.
This document explains the three main types of access control vulnerabilities that Invicti Platform can detect: IDOR, BOLA, and BFLA, and helps you understand the critical difference between horizontal and vertical access control issues.
What are access control vulnerabilities?
Access control vulnerabilities occur when an application fails to properly verify that a user has permission to access a resource or perform an action. These vulnerabilities fall into three main categories:
BOLA (Broken Object Level Authorization)
Broken Object Level Authorization is a security vulnerability where users can access objects they are not authorized to view, modify, or delete. This occurs when an API fails to verify that the authenticated user has permission to access the specific object being requested.
For example, if a user can view another user's profile or account details by simply changing an ID in the URL, this is a BOLA vulnerability.
IDOR (Insecure Direct Object References)
Insecure Direct Object References are a specific type of BOLA vulnerability. IDOR occurs when an application exposes a reference to an internal implementation object (such as a file, directory, database record, or key) in a way that allows attackers to manipulate these references.
IDOR and BOLA are often used interchangeably, as IDOR issues are essentially a subset of BOLA vulnerabilities.