Because it turns ordinary users, tokens, or integrations into paths for unauthorised action. Once object-level checks or delegated access fail, an attacker can read data, change records, or trigger workflows without needing a traditional exploit. In modern ecosystems, that failure often spreads through APIs and third-party services, not just the application itself.
Why broken access control keeps outranking other AppSec weaknesses
broken access control stays at the top of AppSec risk because it breaks the basic rule that a request should only do what the authenticated principal is allowed to do. When that rule fails, the issue is not limited to one flaw or one endpoint. It can expose records, let users act as someone else, and turn routine business functions into unauthorised operations across APIs, admin panels, and delegated integrations. For that reason, it often has a wider blast radius than a single injection bug.
That is why access control failures are treated as a core application security concern in OWASP Top 10 and remain central to modern AppSec reviews. The practical problem is that applications rarely enforce authorisation in one place only. Instead, checks are distributed across services, object references, workflow steps, and trust decisions made for tokens or sessions. In practice, many security teams discover the weakness only after a privileged action has already been accepted as legitimate.
Why it keeps showing up in real systems
Broken access control is persistent because it is easy to introduce and hard to prove absent. Development teams often implement authentication correctly and still miss authorisation at the object, function, or tenant boundary. A user may be allowed into the system, but not into that record, account, or action. Once that distinction is unclear, a predictable set of failures appears: insecure direct object references, missing server-side checks, privilege creep, horizontal movement between tenants, and over-trusted API calls.
Modern architectures make the problem more visible, not less. APIs, mobile back ends, service-to-service calls, and low-code workflow tools all create new enforcement points. If one layer assumes another layer already checked access, the control chain becomes brittle. That is especially true where one token can drive multiple actions, or where integrations inherit rights that were never meant for end users. CIS Controls v8 is useful here because it pushes teams toward tighter account governance and permission hygiene, which is exactly where many access failures begin.
- Authentication answers who is calling; access control must still answer what that caller may do.
- Object-level checks matter because many serious failures arise after the user is already logged in.
- API gateways and front-end validation do not replace server-side authorisation.
- Tenant isolation and delegated access both need explicit enforcement, not implied trust.
Where teams get this wrong most often is assuming that one strong login control compensates for weak authorisation logic. It does not, because the failure mode is not entry but overreach.
Where the risk becomes material, and where the edge cases are
Tighter access control often increases design and testing overhead, so organisations must balance usability and speed against explicit enforcement. That tradeoff becomes most visible in systems with many roles, many resource types, or nested delegation, because the more exceptions a platform allows, the easier it is to create an access path that was never intended.
The risk is especially severe when access decisions depend on indirect context such as tenant ID, group membership, workflow state, or another service’s assertion. Those designs can be legitimate, but they require strong consistency checks and clear ownership of each authorisation rule. It is also important to distinguish between broad platform guidance and case-specific controls. For example, NIST Cybersecurity Framework 2.0 helps teams think about governance and protection outcomes, but it does not replace a precise application-level authorisation model.
There are also edge cases where broken access control is hidden behind seemingly valid business logic. A payment refund, case reassignment, export function, or support-console action may look operational rather than security-related, yet it can still become a privilege escalation path if the application trusts the wrong actor. The same is true for machine users and third-party services that inherit more privilege than they need. In those environments, access control failures often survive initial testing because the request itself looks normal even when the resulting action is not. Guidance-vs-consensus note: teams broadly agree on least privilege, but there is less consensus on how to validate complex delegated and cross-service authorisation at scale. The guidance breaks down when access decisions are scattered across systems with no single source of truth for entitlement.
Risk and Threat Considerations
Broken access control is attractive to attackers because it often offers direct business impact with low technical complexity. Instead of exploiting memory corruption or delivery chains, an adversary can abuse an accepted request path, alter an identifier, reuse a token, or invoke a function that was never properly restricted. The result is frequently data exposure, account takeover, unauthorised transaction changes, or lateral movement through trusted workflows.
Failure mechanism: The control fails when the application trusts the caller’s identity or role too early and does not re-check object ownership, action scope, tenant boundary, or delegated authority on the server side. That can let a user enumerate records, invoke hidden functions, or use a valid integration token beyond its intended scope.
Impact: Sensitive data can be read or modified, privileged actions can be executed without approval, and downstream systems may accept the unauthorised change as legitimate because it originated from a trusted application path.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
OWASP Non-Human Identity Top 10 and MITRE ATT&CK address the attack surface, CIS Controls v8 and NIST CSF 2.0 set the technical controls, and PCI DSS v4.0 define the regulatory obligations.
| Framework | Control / Reference | Relevance |
|---|---|---|
| OWASP Non-Human Identity Top 10 | NHI-01 — Secrets and Credential Management | Broken access control often becomes machine-token overreach in APIs and integrations. |
| Recommendation — Scope and revoke integration credentials so tokens cannot perform unauthorized actions. | ||
| CIS Controls v8 | 6 — Access Control Management | The topic is fundamentally about preventing excess privilege and unauthorized action. |
| Recommendation — Enforce least privilege and remove unneeded access paths from users and services. | ||
| NIST CSF 2.0 | PR.AA — Identity Management, Authentication, and Access Control | The risk centers on whether actions are properly authorised after identity is established. |
| Recommendation — Validate that each sensitive action is authorised at the server before execution. | ||
| MITRE ATT&CK | T1068 — Exploitation for Privilege Escalation | Attackers abuse broken access checks to gain higher privileges or broader access. |
| Recommendation — Hunt for privilege-escalation attempts that exploit missing server-side authorization. | ||
| PCI DSS v4.0 | 7 — Restrict Access to System Components and Cardholder Data by Business Need to Know | Payment environments are exposed when access to records and functions is over-permissive. |
| Recommendation — Restrict cardholder-data access and verify each business function is permissioned. | ||
Practitioner Guidance
What to prioritise: Treat object-level and function-level authorisation as the primary test, not a secondary review after authentication passes. The most useful question is whether the server independently verifies who may act on which resource, in which tenant, and through which workflow step.
What to verify: Confirm that access decisions are enforced in the back end for every sensitive operation, including exports, admin functions, delegated actions, and API calls from mobile or partner clients. Check that a valid session, token, or integration credential does not automatically imply broad action rights.
What good looks like: A well-governed application makes denied access observable, maps permissions to specific actions, and produces a clear entitlement trail for high-risk paths. If testers can change an identifier or switch context and still reach data, the control design is not mature enough.
Practitioner takeaway: The decisive issue is not whether users can log in safely, but whether every meaningful action is individually authorised at the point of execution.
Related resources from NHI Mgmt Group
- Why do misconfiguration and broken access control keep showing up together in enterprise risk?
- Why do authentication and access control failures still matter in AI-led AppSec testing?
- Why do AI-generated features create more broken access control risk?
- Why do modern APIs increase the risk of broken authentication and access control?
Deepen Your Knowledge
Reviewed and updated by the NHIMG editorial team on September 6, 2026.
NHI Mgmt Group — the #1 independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org