Broken access control occurs when a system fails to properly enforce restrictions
on what authenticated users are allowed to do. This could allow unauthorized users
to access or modify data, perform actions they shouldn't, or assume privileged
roles.
Examples of vulnerabilities that fall under broken access control include:
Direct Object References: When an application exposes internal implementation
objects, such as file paths, database keys, or URLs, without proper authentication
and authorization checks. Attackers can manipulate these references to access
unauthorized data or functionality.
Insecure Direct Object References (IDOR): Similar to direct object references, but
attackers can exploit predictable or sequential values to access unauthorized data.
For example, changing a URL parameter to access another user's profile or sensitive
information.
Missing Function-Level Access Control: When an application fails to properly
restrict access to specific functions or actions based on a user's role or
privileges. Attackers can exploit this by accessing functions they shouldn't, such
as administrative actions or sensitive operations.
Improper Authorization Checks: Occurs when an application performs authentication
but fails to properly verify whether the authenticated user is authorized to
perform a specific action or access certain resources. Attackers can exploit this
by bypassing authorization checks and gaining unauthorized access to functionality
or data.
Privilege Escalation: When an attacker gains access to a lower-privileged account
but can exploit vulnerabilities to elevate their privileges and gain unauthorized
access to higher-level functionality or sensitive data.
Insecure Direct Object References (IDOR): When an application allows users to
directly access objects based on user-supplied input, such as file names or
database keys, without proper authorization checks. Attackers can exploit this
vulnerability to access unauthorized data or functionality by manipulating object
references in URLs or other parameters.
Addressing broken access control vulnerabilities involves implementing proper
authentication mechanisms, enforcing role-based access control (RBAC), implementing
least privilege principles, and thoroughly validating and authorizing user actions
and requests.