By NHI Mgmt Group Editorial TeamBased on Salt: “API5:2023 Broken Function Level Authorization (BFLA)” (May 28, 2026)

TL;DR: Broken function level authorization lets attackers use legitimate API requests to reach functions they should not control, including administrative actions, according to Salt's analysis of API abuse patterns and a New Relic Synthetics example. The core problem is that authorization policies often assume endpoints can be judged statically, but API behaviour changes fast and can outpace fixed controls.


At a glance

What this is: This analysis explains how broken function level authorization lets legitimate API requests reach functions, methods, and administrative actions that should be out of scope.

Why it matters: It matters because IAM and API security teams need controls that evaluate function-level entitlement in context, not just whether a request looks syntactically valid.


Context

Broken function level authorization is an API authorization failure where the request is valid but the function behind it is not permitted for the caller. In practice, the problem appears in distributed and cloud-native applications where roles, sub-users, and mixed privileges make static permission assumptions fragile.

The article argues that attackers can discover these flaws even without formal documentation by reverse engineering client-side code, intercepting traffic, and manipulating methods, parameters, or message bodies. That makes the governance problem less about endpoint visibility and more about whether runtime authorisation keeps pace with changing API behaviour.


Key questions

Q: What breaks when function-level authorization is missing in APIs?

A: The application can allow authenticated users to perform actions they were never meant to control. That means pricing changes, money transfers, or shipment updates can succeed even when the user lacks the business entitlement. The failure is not just technical exposure. It is a direct break in the link between identity, permission, and action.

Q: Why do WAFs and API gateways miss broken function level authorization?

A: They usually inspect request shape, not business intent. A request can be syntactically valid and still be unauthorized if the application fails to verify that the caller may perform the function. That is why API gateways need application-layer authorization context and behavioural baselines, not only positive filters.

Q: How do security teams know whether dynamic authorization is working?

A: Look for fewer persistent credentials, shorter token lifetimes, and audit records that show workload identity, resource, policy outcome and context for each request. If teams still rely on broad allow rules, manual exceptions or hidden bootstrap secrets, the programme has not באמת moved from secret management to runtime trust.

Q: What should teams do when an API exposes hidden administrative functions?

A: Treat the exposed function as part of the security boundary, not as harmless implementation detail. Remove unnecessary exposure, require explicit entitlement checks for privileged actions, and retest the API after every release that changes endpoint behaviour or partner access.


Technical breakdown

How function-level authorization fails in structured APIs

BFLA happens when an API checks whether a request is well formed, but not whether the caller should be allowed to invoke the function behind that request. Because REST calls are predictable, an attacker can learn permitted patterns from client traffic, then replay or modify them. Common manipulations include changing an HTTP method from GET to PUT, or replacing a value such as users with admins. The core flaw is that the security decision is made at the wrong granularity: endpoint access is treated as sufficient when the real control point is the function and the action it performs.

Practical implication: authorisation policy must be evaluated at function level, not just at route or method level.

Why WAFs and API gateways miss BFLA abuse

Traditional WAFs and API gateways are built to inspect traffic shape, not business intent. If a request uses a permitted method or a statically allowed pattern, the control may pass it even when the action itself is outside the user's authority. Positive security filters can help, but they are brittle in fast-changing applications because they depend on tight knowledge of which parameters, values, and methods should be allowed. In the article's New Relic example, the weak point was not transport security but the lack of context about who should be able to modify alerts and through which function.

Practical implication: treat gateway rules as coarse filtering and pair them with context-aware application authorisation.

Why BFLA overlaps with BOLA but changes the control problem

BFLA and BOLA both expose the gap between what an API exposes and what the caller should control, but they sit at different levels. BOLA concerns objects, such as records or accounts. BFLA concerns the action itself, such as creating, deleting, or modifying administrative functions. That distinction matters because teams often find object-level checks and assume function-level checks are covered. They are not. When function authorisation is missing, an attacker can move from ordinary use to privilege escalation without ever needing to bypass the transport layer or the UI.

Practical implication: review APIs for function entitlement separately from object access checks.


Threat narrative

Attacker objective: The attacker wants to use valid API traffic to reach restricted functions and gain administrative or otherwise unauthorized control.

  1. Entry occurs through a legitimate API session or a manipulated request captured from client traffic, not through obvious malformed traffic.
  2. The attacker alters methods, parameters, or request bodies to invoke a function that should be reserved for a higher privilege level.
  3. Escalation follows when the endpoint accepts the request and performs administrative or restricted actions without adequate authorisation context.
  4. Impact is unauthorised account changes, alert tampering, deletion, or other privileged API actions that expand control beyond the intended user scope.

NHI Mgmt Group analysis

BFLA is really a function-entitlement problem, not a transport problem. The request can be syntactically valid and still be operationally illegitimate. That is why controls focused only on API reachability, method allowlists, or gateway acceptance miss the real failure mode. Practitioners need to treat function authorization as a distinct governance layer, especially where hidden or deprecated endpoints remain callable.

Static API filters cannot keep up with dynamic application behaviour. The article shows why positive security rules and WAF logic break down when APIs change faster than policy maintenance cycles. In cloud-native and distributed systems, the entitlement decision is tied to business action, not just path or verb. Security teams should assume that any control based on a fixed request pattern will age out unless it is continuously tuned against runtime behaviour.

Hidden privilege is the API analogue of shadow authorization. If a function is reachable but not visible in the UI, teams can incorrectly assume it is harmless or decommissioned. The New Relic example shows that undisclosed or dormant functions can remain exploitable long after the surrounding interface changes. Governance has to cover function inventory, not just object inventory, because the attack surface is larger than the documented surface.

Broken function level authorization exposes a control gap that spans development and security operations. The article makes clear that knowing which user, method, parameter, and business function belong together is not a gateway-only problem. It requires shared ownership between application design, release engineering, and security policy. Practitioners should read BFLA as evidence that API authorisation is a lifecycle issue, not a point-in-time rule set.

What this signals

Hidden API privilege: BFLA is a reminder that the security boundary is the function, not the endpoint. When organisations rely on route-level controls alone, they leave administrative capability reachable through ordinary-looking requests, which is exactly where attackers look first.

API security programmes need lifecycle discipline as much as policy design. When methods, parameters, and hidden functions change faster than the control model, the gap between intended and effective authorisation becomes the real exposure surface.


For practitioners

  • Inventory hidden API functions Map endpoints, methods, and backend actions that are callable even when they are not exposed in the user interface or documentation. Focus on administrative, alerting, delete, and account-management functions that may still accept valid traffic from lower-privilege users.
  • Baseline normal function-level behaviour Establish per-endpoint and per-user baselines for expected methods, parameters, and message-body values so unexpected privilege use can be detected as behaviour, not just syntax.
  • Separate object checks from function checks Review whether BOLA-style object permissions are being mistaken for function-level authorisation and verify that each privileged API action has an explicit entitlement decision.
  • Retest controls after API changes Revalidate authorisation assumptions whenever application releases, deprecated functions, or partner integrations change what a user can call through the API.
  • Constrain administrative API actions Require explicit control for delete, create, modify, and alert-management functions so lower-privilege users cannot trigger hidden business operations through legitimate requests.

Key takeaways

  • Broken function level authorization lets valid API traffic reach functions that should be restricted, which turns normal requests into privilege escalation paths.
  • The article's New Relic example shows that a restricted user could modify alerts through a legitimate request, proving the risk is practical rather than theoretical.
  • The most direct defence is function-aware authorisation, paired with continuous behavioural baselining so hidden or changing API actions do not escape review.

Standards & Framework Alignment

This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.

OWASP API Security Top 10 addresses the attack and risk surface, while NIST SP 800-53 Rev 5, NIST CSF 2.0 and CIS Controls v8 set the governance and control requirements practitioners need to meet.

FrameworkControl / ReferenceRelevance
OWASP API Security Top 10API5 — Broken Function Level AuthorizationThe article is explicitly about BFLA and privileged API action abuse.
API2 — Broken AuthenticationThe example depends on legitimate sessions and request replay from lower-privilege users.
Recommendation — Review privileged API actions under API5 and verify that each function has an explicit entitlement check. Pair authentication checks with authorisation so valid sessions cannot reach restricted API functions.
NIST SP 800-53 Rev 5AC-6 — Least PrivilegeThe core failure is excess callable capability relative to user privilege.
Recommendation — Apply AC-6 to ensure API users can invoke only the functions required for their role.
NIST CSF 2.0PR.AA-05 — Access Permissions, Entitlements and AuthorizationsThe article centers on whether permissions and authorisations match the action being requested.
Recommendation — Use PR.AA-05 to validate that API entitlements align with each business function.
CIS Controls v8CIS-5 — Account ManagementUnauthorized function use often exposes weak account and privilege governance across API users.
Recommendation — Use CIS-5 to review account privileges and remove access to administrative API functions that users do not need.

Key terms

  • Broken Function Level Authorization: A failure where an API allows a caller to invoke a function reserved for a more privileged role. The problem appears when the API checks whether a user is logged in but not whether they are allowed to perform that action. It is a privilege boundary failure at the application control layer.
  • Method-Level Authorization: Method-level authorization restricts access at the business method rather than only at the route or page level. Java frameworks use annotations such as `@PreAuthorize` and `@Secured` to enforce this. It is a defence-in-depth control that helps prevent users from reaching sensitive actions through alternative paths.
  • API Behavioral Baseline: An API behavioral baseline is the normal pattern of how an application interface is used over time. It captures typical request volume, timing, source, payload shape, error rates, and authentication behavior so deviations can be detected. Security teams use it to spot abuse, automation, misconfiguration, or compromised credentials.
  • Positive Security Model: A positive security model allows only known-good behaviour and blocks everything else. In API programmes it is often implemented through schemas or allowlists, but that approach only works for what can be explicitly modelled, leaving runtime context and undocumented behaviour outside its protection boundary.

Deepen your knowledge

NHI governance, agentic AI identity, and machine identity lifecycle are core topics in our NHI Foundation Level course, the industry's only accredited NHI security programme. If you are responsible for identity security strategy or NHI governance in your organisation, it is worth exploring.
NHIMG Editorial Note
Published by the NHIMG editorial team on August 2, 2026.
Updated on October 12, 2026.
NHI Mgmt Group, the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org