TL;DR: Traditional scanners can miss broken access control, IDOR, and authorization bypass because those flaws have no payload or signature to match, according to Gecko Security. Semantic code analysis is now the dividing line between surface-level findings and tools that can reason across service boundaries and code intent.
At a glance
What this is: Gecko Security argues that AI-powered appsec testing can detect broken access control where pattern-based scanners fail, because semantic reasoning can trace authorization intent across services.
Why it matters: For IAM and security teams, the key issue is that missing permission checks are governance failures as much as code defects, so detection needs to understand access logic, not just code signatures.
Context
Broken access control is a governance problem before it is a scanning problem. If a tool can only match known payloads, it will miss missing permission checks, IDOR paths, and service-to-service authorization breaks because those flaws often have no obvious signature. In modern microservice and API-heavy systems, the real control question is whether code intent matches access enforcement across boundaries.
This article sits at the intersection of application security and identity governance because authorization is the security model that determines who or what can do what. When scanners cannot reason about that model, teams lose visibility into whether access controls actually hold in production. The subject matter is typical of high-scale software estates, where logic flaws outnumber classic injection-style findings.
Key questions
Q: What breaks when appsec tools cannot model authorization logic across services?
A: They miss the place where the real security decision is made. A gateway check may look correct while the downstream service or shared library silently skips enforcement, so the issue only appears when a user traverses the full call chain. That is how broken access control survives scanning and reaches production.
Q: Why do missing permission checks create more risk than simple syntax bugs?
A: A syntax bug usually affects one code path, but a missing permission check can expose data, workflows, or administrative actions across an entire service boundary. The risk is broader because the application may behave normally for legitimate users while silently allowing unauthorised ones. That makes authorisation failures especially dangerous in distributed systems and APIs.
Q: How do security teams know whether semantic code analysis is actually working?
A: Look for findings that map to real execution paths, cross-service trust boundaries, and business logic errors that pattern scanners miss. If a tool only repeats known syntax issues or produces noisy findings without proving exploitability, it is not giving you meaningful semantic coverage.
Q: Should organisations use pattern-based scanning and semantic analysis together?
A: Yes, because they solve different problems. Pattern-based tools are useful for known injection and configuration issues, while semantic analysis is needed for business logic flaws like broken access control and IDOR. A mature programme uses both, but it does not confuse dependency risk, syntactic issues, and authorisation defects as the same control problem.
Technical breakdown
Why pattern matching misses broken access control
Pattern-based scanners work well when a vulnerability has a stable signature, such as a known injection string or unsafe sink. Broken access control is different: the defect is often an omitted check, an incorrect trust assumption, or a policy mismatch between services. There may be no malicious payload at all, just a request that should have been denied but was allowed. That means AST-based rules and taint flows can confirm code shape without proving access correctness. In distributed systems, this gap widens because the decision can span an API gateway, an auth layer, and a downstream service. Practical implication: authorization testing has to verify intent, not just syntax.
Practical implication: Use controls that can reason about authorization state across service boundaries, not just detect known bad code patterns.
Semantic code analysis and compiler-accurate indexing
Semantic analysis tries to infer what the application is meant to do by following call chains, contracts, and data relationships across files and services. Compiler-accurate indexing improves that picture by building a more precise map of code behavior than file-level parsing alone. In appsec terms, that allows the scanner to connect an entry point, an auth decision, and a downstream action even when the logic is split across microservices. The value is not that the tool is 'AI-powered', but that it can reason over program meaning rather than isolated patterns. Practical implication: choose analysis methods that preserve cross-service context when authorization lives outside a single code file.
Practical implication: Prioritise tools that can trace authorization logic across API contracts, service calls, and downstream data access.
Business logic flaws in microservice architectures
Broken access control, IDOR, and privilege escalation often emerge when the application’s business rules are enforced inconsistently across components. A user may be authenticated but not authorised for a specific object, workflow, or service action. In microservice environments, that inconsistency can hide behind separate teams, separate repos, and separate trust assumptions. The issue is not just whether a login exists, but whether each service applies the correct permission boundary before acting. That is why AI-native testing tools focus on whole-codebase reasoning and exploit validation. Practical implication: test the authorisation model as an end-to-end control plane, not as isolated endpoint checks.
Practical implication: Map object, action, and service-level permissions end to end so broken access control cannot hide between services.
Threat narrative
Attacker objective: The attacker aims to exploit trust gaps in authorisation logic to reach data or actions that should have remained out of scope.
- Entry occurs through a normal authenticated request path, but the request targets a resource or action the caller should not control.
- Credential or session validity is not the failure point; the abuse comes from missing or incorrect authorisation checks on the object or workflow.
- The attacker escalates by chaining service-to-service calls or API boundaries until they reach data, functions, or administrative actions beyond their entitlement.
- Impact is unauthorised access, privilege escalation, or account takeover across one or more services.
Breaches seen in the wild
- McHire default password flaw 2025: A forgotten test admin account with the password 123456 and an API flaw exposed McDonald's McHire applicant records to researchers.
Read and download The State of NHI & AI Agent Breach Report 2026, covering 200+ breaches impacting Non-Human Identities including AI Agents.
NHI Mgmt Group analysis
Broken access control has become an identity governance problem, not just an appsec bug. If scanners cannot verify whether a permission check exists at the right point in the call chain, they cannot tell you whether access policy is actually being enforced. That makes authorisation reasoning part of identity control, especially in service-heavy environments where human users, service accounts, and APIs all participate in the same workflow. Practitioners should treat authorisation coverage as a control design problem, not a point-in-time vulnerability scan.
Semantic code analysis is the named capability that matters here. The useful distinction is not 'AI versus non-AI', but whether the tool can infer intent across code paths, service contracts, and downstream effects. In practice, that is what separates surface-level findings from the bugs that become real breaches. Security teams should evaluate appsec tooling on its ability to follow access decisions across architectural boundaries, because that is where modern logic flaws hide.
Cross-service authorisation drift is the failure mode this article exposes. A system can look secure at the endpoint level while still allowing unauthorised actions once requests traverse microservices, queues, or APIs. That drift is especially dangerous when different teams own different components of the same transaction. The practitioner takeaway is to govern authorisation as a distributed property of the application, not as a per-file or per-repo check.
False positive reduction is only useful if the tool is proving the right thing. The article’s real signal is that exploit validation and whole-call-chain reasoning change the economics of review, because teams spend less time chasing noise and more time validating access control defects that matter. That does not remove the need for human review; it changes what humans should review. Teams should prioritise proof-driven findings where the tool can demonstrate actual access failure, not just suspicious code.
The market is moving toward code-intent security, not pattern-only detection. Traditional SAST remains useful for syntactic issues, but it is structurally mismatched to authorisation defects. That means appsec programmes need to separate dependency scanning, pattern matching, and semantic reasoning into distinct control layers. Practitioners should expect future tooling evaluations to focus less on rule coverage and more on whether a platform can model the security intent of an application.
What this signals
Cross-service authorisation drift: when permission logic is split across gateways, services, and data layers, no single scanner can prove that access was denied for the right reason. That pushes teams toward whole-codebase reasoning and away from endpoint-only reassurance.
AppSec programmes should now separate three layers of control: dependency risk, syntactic code issues, and semantic authorisation testing. Collapsing them into one scanner category hides the exact gap this article exposes.
For identity teams, the lesson is that authorisation is not just an application concern. When service accounts, APIs, and user sessions all participate in one transaction, governance has to follow the decision path, not just the login event.
For practitioners
- Audit authorisation coverage at service boundaries Review whether every API, microservice call, and downstream data access point enforces an explicit permission decision before action is taken.
- Test for broken access control beyond single files Use appsec workflows that can trace object access, workflow access, and service-to-service calls across repositories and deployable components.
- Separate dependency risk from logic risk Keep software composition scanning for third-party library exposure, but add a distinct control for authorisation defects in your own code paths.
- Require proof of exploit for high-confidence findings Prioritise findings that can demonstrate an actual unauthorised action or privilege escalation rather than a heuristic match alone.
Key takeaways
- Broken access control is a control failure, not just a code defect, because it means the application allows actions it should have denied.
- Pattern matching will keep missing authorisation bugs unless analysis can reason across service boundaries and infer intended access policy.
- Security teams should treat semantic code analysis as a separate control layer for logic flaws, alongside dependency scanning and conventional SAST.
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, OWASP API Security Top 10 and MITRE ATT&CK address the attack and risk surface, while NIST CSF 2.0 sets the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| OWASP Non-Human Identity Top 10 | NHI-04 — Insecure Authentication | The article centres on authorisation checks that fail after authentication succeeds. |
| NHI-05 — Overprivileged NHI | Service-to-service access and privilege escalation are part of the risk pattern described. | |
| Recommendation — Map authz testing to NHI-04 and verify that authenticated identities cannot exceed intended service scope. Review service and API entitlements for overprivileged machine identities and remove unused access paths. | ||
| OWASP API Security Top 10 | API5 — Broken Function Level Authorization | Missing function-level checks are a direct analogue to the broken access control problem in the article. |
| Recommendation — Test APIs for broken function-level authorisation before release and require negative tests for privileged actions. | ||
| MITRE ATT&CK | TA0006;TA0008 — Credential Access; Lateral Movement | The article describes privilege escalation and movement across service boundaries after initial access. |
| Recommendation — Map cross-service abuse to credential access and lateral movement techniques to improve detection coverage. | ||
| NIST CSF 2.0 | PR.AA-05 — Access Permissions, Entitlements and Authorizations | The core issue is whether access permissions are actually enforced across application paths. |
| Recommendation — Use PR.AA-05 to validate entitlement enforcement across APIs, services, and application workflows. | ||
Key terms
- Broken Access Control: Broken access control occurs when a system fails to restrict what an authenticated user, service, or workload can do. The issue often appears as missing checks, inconsistent enforcement, or excessive permissions. It is a structural weakness because attacks exploit the gap between verified identity and permitted action.
- Semantic Code Analysis: A method of examining code based on meaning and intent rather than only syntax or known patterns. It tries to understand how an application behaves across files, services, and call chains so it can detect logic failures that signature-based tools miss.
- Cross-Service Authorisation: Cross-service authorisation is the enforcement of permission decisions across multiple services, APIs, or components that participate in the same user action. It matters because a request can look valid at the entry point and still become unsafe when downstream services do not apply the same control.
- IDOR: Insecure Direct Object Reference is a vulnerability where an application exposes internal object identifiers and fails to verify whether the requesting principal is entitled to access them. The flaw often produces unauthorized reads, writes, or account-level actions.
Deepen your knowledge
NHI Foundation Level course, the industry's only accredited NHI security programme, covers NHI governance, identity lifecycle, and secrets management. It is a useful next step for practitioners aligning identity controls with broader security and application risk.
Published by the NHIMG editorial team on August 1, 2026.
Updated on October 13, 2026.
NHI Mgmt Group, the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org